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

相关文章

Pandas中多重索引技巧的实现

《Pandas中多重索引技巧的实现》Pandas中的多重索引功能强大,适用于处理多维数据,本文就来介绍一下多重索引技巧,具有一定的参考价值,感兴趣的可以了解一下... 目录1.多重索引概述2.多重索引的基本操作2.1 选择和切片多重索引2.2 交换层级与重设索引3.多重索引的高级操作3.1 多重索引的分组聚

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

【Python从入门到进阶】64、Pandas如何实现数据的Concat合并

接上篇《63.Pandas如何实现数据的Merge》 上一篇我们学习了Pandas如何实现数据的Merge,本篇我们来继续学习Pandas如何实现数据的Concat合并。 一、引言 在数据处理过程中,经常需要将多个数据集合并为一个统一的数据集,以便进行进一步的分析或建模。这种需求在多种场景下都非常常见,比如合并不同来源的数据集以获取更全面的信息、将时间序列数据按时间顺序拼接起来以观察长期趋势等

C和指针:结构体(struct)和联合(union)

结构体和联合 结构体 结构体包含一些数据成员,每个成员可能具有不同的类型。 数组的元素长度相同,可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同,所以不能用下标来访问它们。成员有自己的名字,可以通过名字访问成员。 结构声明 在声明结构时,必须列出它包含的所有成员。 struct tag {member-list} variable-list ; 定义一个结构体变量x(包含

MySQL基础(7)- 多表查询

目录 一、笛卡尔积的错误与正确的多表查询 1.出现笛卡尔积错误 2.正确的多表查询:需要有连接条件 3.查询多个表中都存在的字段 4.SELECT和WHERE中使用表的别名 二、等值连接vs非等值连接、自连接vs非自连接 1.等值连接  vs  非等值连接 2.自连接  vs  非自连接 3.内连接  vs  外连接 4.UNION  和 UNION ALL的使用 5.7种J