pandas的拼接操作

Posted 你好,小帝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas的拼接操作相关的知识,希望对你有一定的参考价值。

 

 

 

 

pandas的拼接分为两种:

  • 级联:pd.concat, pd.append
  • 合并:pd.merge, pd.join

1. 使用pd.concat()级联

pandas使用pd.concat函数,与np.concatenate函数类似,只是多了一些参数:

pd.concat(objs, axis=0, join=\'outer\', join_axes=None, ignore_index=False,
          keys=None, levels=None, names=None, verify_integrity=False,
          copy=True)

1) 简单级联

和np.concatenate一样,优先增加行数(默认axis=0)

可以通过设置axis来改变级联方向

注意index在级联时可以重复

也可以选择忽略ignore_index,重新索引

或者使用多层索引 keys

2) 不匹配级联

不匹配指的是级联的维度的索引不一致。例如纵向级联时列索引不一致,横向级联时行索引不一致

有3种连接方式:

  • 外连接:补NaN(默认模式)
  • 内连接:只连接匹配的项  #增加属性 join=\'inner\'
  • 连接指定轴 join_axes

3) 使用append()函数添加

由于在后面级联的使用非常普遍,因此有一个函数append专门用于在后面添加

 

2. 使用pd.merge()合并

merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并

使用pd.merge()合并时,会自动根据两者相同column名称的那一列,作为key来进行合并。

注意每一列元素的顺序不要求一致

1) 多对一合并

2) 一对一合并

3) 多对多合并

 

4) key的规范化

  • 使用on=显式指定哪一列为key,当有多个key相同时使用
  • 使用left_on和right_on指定左右两边的列作为key,当左右两边的key都不想等时使用

5) 内合并与外合并

  • 内合并:只保留两者都有的key(默认模式)
  • 外合并 how=\'outer\':补NaN
  • 左合并、右合并:how=\'left\',how=\'right\',

6) 列冲突的解决

当列冲突时,即有多个列名称相同时,需要使用on=来指定哪一个列作为key,配合suffixes指定冲突列名

可以使用suffixes=自己指定后缀

以上是关于pandas的拼接操作的主要内容,如果未能解决你的问题,请参考以下文章

23、pandas的多列拼接成一列函数.str.cat()

panda库------对数据进行操作---合并,转换,拼接

Python数据分析库pandas ------ mergeconcatenation pd.concat合并与拼接

Pandas - DataFrame 基本操作

Python数据分析pandas之数据拼接与连接

pandas数据拼接