Pandas 11-多表联合

2024-09-03 15:20
文章标签 联合 多表 pandas

本文主要是介绍Pandas 11-多表联合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基本概念

  • DataFrame: 一个二维的表格数据结构,类似于电子表格或 SQL 表。
  • join: 将两个 DataFrame 按照某个共同的列(键)进行合并。

常见的 join 类型

  1. inner join: 只保留两个 DataFrame 中键匹配的行。
  2. left join: 保留左边 DataFrame 的所有行,右边 DataFrame 中没有匹配的行用 NaN 填充。
  3. right join: 保留右边 DataFrame 的所有行,左边 DataFrame 中没有匹配的行用 NaN 填充。
  4. outer join: 保留两个 DataFrame 中的所有行,没有匹配的行用 NaN 填充。

使用方法

Pandas 提供了 mergejoin 两种方法来进行表的合并。

使用 merge 方法
import pandas as pd  # 创建示例 DataFrame  
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})  
df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value2': [4, 5, 6]})  # inner join  
result_inner = pd.merge(df1, df2, on='key', how='inner')  # left join  
result_left = pd.merge(df1, df2, on='key', how='left')  # right join  
result_right = pd.merge(df1, df2, on='key', how='right')  # outer join  
result_outer = pd.merge(df1, df2, on='key', how='outer')  
使用 join 方法

join 方法默认是基于索引进行合并,但也可以通过 on 参数指定列。

# 创建示例 DataFrame  
df1 = pd.DataFrame({'value1': [1, 2, 3]}, index=['A', 'B', 'C'])  
df2 = pd.DataFrame({'value2': [4, 5, 6]}, index=['B', 'C', 'D'])  # inner join  
result_inner = df1.join(df2, how='inner')  # left join  
result_left = df1.join(df2, how='left')  # right join  
result_right = df1.join(df2, how='right')  # outer join  
result_outer = df1.join(df2, how='outer')  

多表联合 join

当需要将多个 DataFrame 进行联合 join 时,可以多次调用 mergejoin 方法。

# 创建示例 DataFrame  
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})  
df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value2': [4, 5, 6]})  
df3 = pd.DataFrame({'key': ['C', 'D', 'E'], 'value3': [7, 8, 9]})  # 先合并 df1 和 df2,再合并结果与 df3  
result = pd.merge(pd.merge(df1, df2, on='key', how='outer'), df3, on='key', how='outer')  

注意事项

  1. 键的名称: 确保两个 DataFrame 中用于合并的列名称相同。
  2. 数据类型: 确保用于合并的列数据类型一致,避免因数据类型不匹配导致的合并错误。
  3. 性能: 对于大数据集,考虑使用更高效的数据库或优化 Pandas 操作。

这篇关于Pandas 11-多表联合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133327

相关文章

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

MySQL复合查询从基础到多表关联与高级技巧全解析

《MySQL复合查询从基础到多表关联与高级技巧全解析》本文主要讲解了在MySQL中的复合查询,下面是关于本文章所需要数据的建表语句,感兴趣的朋友跟随小编一起看看吧... 目录前言:1.基本查询回顾:1.1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J1.2.按照部门

pandas DataFrame keys的使用小结

《pandasDataFramekeys的使用小结》pandas.DataFrame.keys()方法返回DataFrame的列名,类似于字典的键,本文主要介绍了pandasDataFrameke... 目录Pandas2.2 DataFrameIndexing, iterationpandas.DataF

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl