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的拼接操作的主要内容,如果未能解决你的问题,请参考以下文章
panda库------对数据进行操作---合并,转换,拼接