数据分析05_pandas拼接

【pandas04_拼接】

两种拼接:

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

0.回顾np级联

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来改变级联方向,这个axis的使用和np.concatenate一样的, 当axis = 0 的时候增加的行数, 如果不想有空值的出现,列应该是相同的
#当axis = 1的时候, 增加的是列数, 如果不想有空值的出现, 行索引应该是一样的

2)不匹配级联

不匹配指的是级联的维度的索引不一致。例如纵向级联时列索引不一致,横向级联时行索引不一致
有3种连接方式:
外连接;补NaN(默认模式)
内连接:只连接匹配的项
连接指定轴 join_axes

3) 使用append()函数添加

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

2. 使用pd.merge()合并

两个DataFrame一般要有两个相同的列名字, 才可以进行合并, 融合;
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=自己指定后缀
【案例分析:美国加州人口数据分析】

发布了388 篇原创文章 · 获赞 71 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/ZZQHELLO2018/article/details/103945168