1. 数据合并
实际应用中,需要分析的数据可能来自不同的数据集,因此在开始数据分析之前,需要先将不同的数据集合并。
pandas中提供了三种不同的数据合并方式:
Pandas.merge()
:数据库方式的数据连接,可根据一个或多个键,将不同DataFrame对象的行连接起来;Pandas.concat()
:轴向数据连接,沿着一条轴,将多个DataFrame对象堆叠到一起;Pandas.combine()
:用一个DataFrame对象中的数据填充另一个DataFrame对象中的缺失数据。
1.1 merge()合并
pd.merge(left,right,[参数列表])
参数 | 说明 |
---|---|
left | 参与合并的左侧DataFrame对象,必填 |
right | 参与合并的右侧DataFrame对象,必填 |
how | 连接方式,“inner”、“outer”、“left”、“right”其中之一,默认为“inner” |
on | 用于连接的列名(或列名列表);未指定改参数时,为左右数据集的公共列 |
left_on | 左侧DataFrame对象中用于连接的键 |
right_on | 右侧DataFrame对象中用于连接的键 |
left_index | 布尔型,是否将左侧DataFrame对象的行索引用作连接键 |
right_index | 布尔型,是否将右侧DataFrame对象的行索引用作连接键 |
sort | 是否根据连接键对合并后的数据排序,默认为True |
suffixes | 字符串值元组,用于追加到重叠列名的末尾,默认为‘_x’和‘_y’ |
inner:内连接,连接两个DataFrame对象键值的交集的行
outer:外连接,连接两个DataFrame对象键值的并集的行
left:左链接,取出左侧DataFrame对象的全部行,连接右侧DataFrame对象键值匹配的行
right:右链接,取出右侧DataFrame对象的全部行,连接左侧DataFrame对象键值匹配的行
1.2 concat()合并
pd.concat(objs,axis,[参数列表])
参数 | 说明 |
---|---|
objs | 需要连接的对象,如[df1, df2] |
axis | 连接的轴,默认为0;axis=0,按行堆叠;axis=1,按列堆叠 |
join | 默认为“outer”,outer为并集/inner为交集 |
ignore_index | ignore_index 忽略需要连接的frame本身的index,当原本的index没有特别意义的时候可以使用 |
join_axes | Index对象列表,用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑 |
keys | 可以给每个需要连接的df一个label |
levels | 序列列表,默认值无;用于构建MultiIndex的特定级别(唯一值) |
names | list,default无,结果层次索引中的级别的名称 |
verify_integrity | boolean,default False;检查新连接的轴是否包含重复项 |
copy | boolean,default True |
1.3 combine()合并
-
df1.combine_first(df2)