pandas库的合并
pd.merge()
通过一个或多个键将行链接起来的。
1、语法结构
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=False,suffixes=('_x', '_y'), copy=True, indicator=False,
validate=None)
参数解释如下:
- left, right:拼接的左侧和右侧的DataFrame对象。其中,left可以放到前面,即可以left.merge(right)。
- how:inner,outer,left,right其中之一,默认为inner。inner是取交集,outer取并集,left以左侧的DataFrame对象为准。比如left:[‘A’,‘B’,‘C’];right[’'A,‘C’,‘D’]。inner取交集的话,left中出现的A会和right中出现的另一个A进行匹配拼接,如果没有是B,在right中没有匹配到,则会丢失。'outer’取并集,出现的A会进行一一匹配,没有同时出现的会将缺失的部分添加缺失值。
- on:用于连接的列名,必须在左侧和右侧DataFrame对象中找到。如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。
可以是一列或多列,多列时传入一个列表。 - left_on,right_on:功能和上面一样,在左右侧DataFrame对象中想要拼接的列名不同时,可以用这两个参数。作为列或索引级别用作键,可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
- left_index,right_index:布尔型,如果为True,则使用左侧或右侧DataFrame中的索引(行标签)作为其连接键。可以和上面两个参数搭配使用,只要其中两个即可。
注: 以下参数,个人还没有用过,抄自《利用Python进行数据分析(第二版)》
- sort:按字典顺序通过连接键对结果DataFrame进行排序。 默认为True,设置为False将在很多情况下显着提高性能。目前在运行时,默认值已经为False。
- suffixes:用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。
- copy:始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此。
- indicator:将一列添加到名为_merge的输出DataFrame,其中包含有关每行源的信息。 _merge是分类类型,并且对于其合并键仅出现在“左”DataFrame中的观察值,取得值为left_only,对于其合并键仅出现在“右”DataFrame中的观察值为right_only,并且如果在两者中都找到观察