pandas - merge()

        函数的官方文档里就有写到 pd.merge() 的作用是用数据库样式的连接合并DataFrame或者已命名的Series;

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
         left_index=False, right_index=False, sort=True,
         suffixes=('_x', '_y'), copy=True, indicator=False,
         validate=None)

参数解释:

left, right:

        pd.merge() 只能用于两个表的拼接,连接方向是左右拼接,不能用于上下拼接;

        如果需要拼接的两个表中,有相同的列信息,那么进行拼接的时候即使不指定以哪个字段作为主键函数也会默认用信息相同的列做主键对两个表进行拼接;

        直接把一个表的名字传递给参数left,另一个表的名字传递给参数right就可以了;

pd.merge(df1,df2)

on:

        这个参数确定哪个字段作为主键,上边提到如果有相同的列信息不指定主键也可以,这里使用on指定主键;

pd.merge(df1,df2,on="")

leftindex, rightindex:

        除了指定字段作为主键以外,还可以考虑用索引作为拼接的主键,leftindex和rightindex默认为False,就是不以索引作为主键,调整为True就可以了

how:

        控制拼接方式,默认内连接(inner)

        外连接是保留两个表的所有信息,拼接的时候遇到标签不能对齐的部分,用NAN进行填充;

        左连接是保留所有左表的信息,把右表中主键与左表一致的信息拼接进来,标签不能对齐的部分,用NAN进行填充;

        右连接是保留所有右表的信息,把左表中主键与左表一致的信息拼接进来,标签不能对齐的部分,用NAN进行填充;

indicator:

        在pd.concat()中可以通过参数设定显示拼接后的表中哪些信息来自于哪一个表格,在pd.merge()中也可以进行这样的操作,就是通过indicator参数设置,默认是False不显示数据来源,把参数设置为True就可以了。

        这样在表的最后就会有一个新列,显示这一条记录来自于在哪表格里有数据,如果两表都有数据会标记both;

个人记录实验,详情参考:pandas数据合并之一文弄懂pd.merge() - 知乎 讲的很清楚!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值