Pandas中merge和join的区别
可以说merge包含了join操作,支持两个df间行方向或列方向的拼接操作,默认列拼接,取交集,而join只是简化了merge的行拼接的操作
示例
定义一个left的DataFrame
left=pd.DataFrame([
[1,2],[3,4],[5,6]
],
index=['a','c','e'],
columns=['chenqionghe','muscle']
)
定义一个right的DataFrame
right=pd.DataFrame([
[7,8],[9,10],[11,12],[13,14],
],
index=['b','c','d','e'],
columns=['light','weight']
)
然后,我们使用merge通过索引合并这两个Dataframe,如下
left.merge(right,left_index=True,right_index=True,how='outer')
然后,通过join方法实现相同的操作
left.join(right,how='outer')
可以看出join其实是省略了参数的merge,并且没有基于列的连表功能
merge的参数
- left:参与合并的左侧DataFrame
- right:参与合并的右侧DataFrame
- how:inner、outer、left、right其中之一
- left_index:将左侧的行索引用作其连接键的列
- right_index:类似于left_index
- sort:根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能
- suffixes:字符串值元组,用于追加到重叠列名,默认为('_x','_y')
- copy:设置为False,可以在某些我死情况下避免将数据复制到结果数据结构中,默认总是复制
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)