【Pandas驯化-13】一文搞懂Pandas中的文件合并merge、concat函数技巧
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 相关内容文档获取 微信公众号
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
下滑查看解决方法
🎯 1. 基本介绍
在数据分析中,经常需要将多个数据集合并为一个统一的数据结构以进行进一步的分析。Pandas 提供了 merge 和 concat 两个函数来实现数据的合并操作。merge 用于根据一个或多个键将不同的数据集按照一定的规则进行合并,类似于 SQL 中的 JOIN 操作。而 concat 用于将多个数据集沿某个轴进行合并,不涉及键的匹配。。
💡 2. 使用方法
2.1 concat函数使用
concat()函数是Pandas中用于沿轴(行或列)合并两个或多个DataFrame的函数。它将两个或多个DataFrame按照指定的轴进行连接,并返回一个新的DataFrame。
参数说明:
- objs:一个DataFrame对象的序列,用逗号分隔,表示要合并的DataFrame。
- axis:指定合并的轴,可以是0(默认值,沿行合并)或1(沿列合并)。
- join:指定连接方式,默认为’outer’,表示对所有列进行外连接;也可以设置为’inner’,表示进行内连接。
- ignore_index:是否忽略原始索引,如果设置为False(默认值),合并后的>- DataFrame将保留原始索引;如果设置为True,合并后的DataFrame将重新生成默认的整数索引。
具体的使用例子如下:
import pandas as pd
# 创建示例数据
data1 = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)
data2 = {'A': [7, 8, 9],
'B': [10, 11, 12]}
df2 = pd.DataFrame(data2)
# 沿行合并两个DataFrame
concatenated_df = pd.concat([df1, df2])
print(concatenated_df)
# 沿列合并两个DataFrame
concatenated_df_axis1 = pd.concat([df1, df2], axis=1)
print(concatenated_df_axis1)
A B
0 1 4
1 2 5
2 3 6
0 7 10
1 8 11
2 9 12
A B A B
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
2.2 merge函数使用
merge()函数是Pandas中用于合并(连接)两个DataFrame的函数。它根据指定的一个或多个键(key)将两个DataFrame的行连接起来,类似于SQL中的JOIN操作。
参数说明:
- left和right:要进行合并的两个DataFrame。
- on:指定用于连接的列名(键),可以是单个列名或多个列名组成的列表。
- how:指定连接方式,默认为’inner’,表示进行内连接;也可以设置为’outer’(外连接)、‘left’(左连接)或’right’(右连接)。
具体的例子使用说明如下所示:
import pandas as pd
# 创建示例数据
data1 = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)
data2 = {'A': [2, 3, 4],
'C': [7, 8, 9]}
df2 = pd.DataFrame(data2)
# 按照'A'列进行内连接
merged_inner = pd.merge(df1, df2, on='A')
print(merged_inner)
# 按照'A'列进行左连接
merged_left = pd.merge(df1, df2, on='A', how='left')
print(merged_left)
# 按照'A'列进行外连接
merged_outer = pd.merge(df1, df2, on='A', how='outer')
print(merged_outer)
A B C
0 2 5 7
1 3 6 8
A B C
0 1 4 NaN
1 2 5 7.0
2 3 6 8.0
🔍 3. 注意事项
对上述的各个函数在使用的过程中需要注意的一些事项,不然可能会出现error,具体主要为:
- merge 函数可以通过 how 参数指定合并的类型,如 inner(默认)、outer、left、right。
- concat 函数主要用于简单合并,不涉及基于键的合并,如果需要基于键的合并,应使用 merge。
- 当合并具有不同列名的 DataFrame 时,merge 会保留所有列,但未匹配的键对应的列将被填充为 NaN。
- 使用 concat 时,如果轴方向不一致,可以通过 axis 参数指定合并的轴向。。
🔧 4. 总结
本文介绍了 Pandas 中的两个数据合并函数 merge 和 concat 的使用方法。merge 用于基于键的合并操作,类似于 SQL 中的 JOIN,而 concat 用于简单的沿轴合并。通过实际的代码示例和输出结果,我们可以看到这些函数在不同场景下的应用。掌握这些技巧可以帮助你更高效地进行数据分析和处理。希望这篇博客能够帮助你更好地理解并应用这些数据合并功能。