微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pandas merge

Pandas 提供的 merge() 函数能够进行高效的合并操作,这与 sql 关系型数据库的 MERGE 用法非常相似。从字面意思上不难理解,merge 翻译为“合并”,指的是将两个 DataFrame 数据表按照指定的规则进行连接,最后拼接成一个新的 DataFrame 数据表。


 merge() 函数的法格式如下:
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)
参数名称说明
left/right两个不同的 DataFrame 对象。
on指定用于连接的键(即列标签的名字),该键必须同时存在于左右两个 DataFrame 中,如果没有指定,并且其他参数也未指定, 那么将会以两个 DataFrame 的列名交集做为连接键。
left_on指定左侧 DataFrame 中作连接键的列名。该参数在左、右列标签名不相同,但表达的含义相同时非常有用。
right_on指定左侧 DataFrame 中作连接键的列名。
left_index布尔参数,认为 False。如果为 True 则使用左侧 DataFrame 的行索引作为连接键,若 DataFrame 具有多层
索引(MultiIndex),则层的数量必须与连接键的数量相等。
right_index布尔参数,认为 False。如果为 True 则使用左侧 DataFrame 的行索引作为连接键。
how要执行的合并类型,从 {'left', 'right', 'outer', 'inner'} 中取值,认为“inner”内连接。
sort布尔值参数,认为True,它会将合并后的数据进行排序;若设置为 False,则按照 how 给定的参数值进行排序。
suffixes字符串组成的元组。当左右 DataFrame 存在相同列名时,通过该参数可以在相同的列名后附加后缀名,认为('_x','_y')。
copy认为 True,表示对数据进行复制。

pd.merge(df1,df2)

左侧和右侧的相同内容字段名字一致且只有一个相同字段


pd.merge(df1,df2,on='x')

左侧和右侧的相同内容字段名字一致但是只有多个相同字段


pd.merge(df1,df2,left_on='x',right_on='y')

左侧和右侧的相同内容字段名字不一致


pd.merge(df1,df2,left_index=True,right_index=True)

不适用列进行融合,可以选择索引进行融合

pd.merge(df1,df2,how='outer|inner|left|right')

不同的融合方式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐