pd.merge() pd.join

本文探讨了Python中pandas库的两个数据合并方法:pd.join()和pd.merge()。pd.join()主要关注行级别的合并,而pd.merge()则侧重于列的合并操作,帮助理解如何在数据处理中有效地整合信息。
摘要由CSDN通过智能技术生成

使用join合并,着重关注的是⾏行行的合并

import pandas as pd
df3=pd.DataFrame({'Red':[1,3,5],'Green':[5,0,3]},index=list('abc'))
df4=pd.DataFrame({'Blue':[1,9,8],'Yellow':[6,6,7]},index=list('cde'))
print(df3)
print(df4)

在这里插入图片描述

# 简单合并(默认是left左连接,以左侧df3为基础)
df3.join(df4,how='left')

在这里插入图片描述

# 右链接 以右侧df4 为基础
df3.join(df4,how='right')

在这里插入图片描述

# 外链接
df3.join(df4,how='outer')

在这里插入图片描述

# 合并多个DataFrame对象
 df5=pd.DataFrame({'Brown':[3,4,5],'White':[1,1,2]},index=list('aed'))
# df3.join([df4,df5])

在这里插入图片描述

使用merge,着重关注的是列列的合并

df1=pd.DataFrame({'名字':list('ABCDE'),'性别':['男','⼥女女','男','男','⼥女女'],'职称':
['副教授','讲师','助教','教授','助教']},index=range(1001,1006))
df1.columns.name='学院老师'
df1.index.name='编号'
print(df1)

在这里插入图片描述

df2=pd.DataFrame({'名字':list('ABDAX'),'课程':['C++','计算机导论','汇编','数据结构','马克思原理理'],'职称':['副教授','讲师','教授','副教授','讲师'] },index=[1001,1002,1004,1001,3001])
df2.columns.name='课程'
df2.index.name='编号'
print(df2)
#默认下是根据左右对象中出现同名的列列作为连接的键,且连接⽅方式是how=’inner’
 print(pd.merge(df1,df2))# 返回匹配的

在这里插入图片描述

# 指定列列名合并
pd.merge(df1,df2,on='名字',suffixes=['_1','_2'])# 返回匹配的

在这里插入图片描述

# 连接⽅方式,根据左侧为准
pd.merge(df1,df2,how='left')

在这里插入图片描述

# 根据右侧为准
pd.merge(df1,df2,how='right')

在这里插入图片描述

# 所有
# pd.merge(df1,df2,how='outer')

在这里插入图片描述

# 根据多个键进⾏行行连接
pd.merge(df1,df2,on=['职称','名字'])

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值