七、合并数据集:Concat和Append操作
写一个构造Dataframe的函数
1.知识回顾: NumPy数组的合并
np.concatenate 函数,axis 参数可以设置合并的座标轴方向
2.通过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, sort=None, copy=True)
简单地合并一维的 Series 或 DataFrame 对象
合并高维数据,相同列方向才能垂直合并,相同行索引才能水平合并
否则横纵交叉
1)索引重复
pd.concat 在合并时会保留索引,即使索引是重复的
虽然 DataFrame 允许这么做,但如果结果并不是我们想要的,可以通过以下方法解决:
- 捕捉索引重复的错误 :设置 verify_integrity 参数
verify_integrity=False是默认的,将它改成True后,索引出现重复就会报错
- 忽略索引,重新设置:设置 ignore_index 参数
- 增加多级索引:keys 参数
2)类似join合并
当存在要合并的Dataframe存在重合的列,可以设置join参数取并集或交集
同样适用于行
join_axes 参数直接指定保留的行名或列名
3)append()方法
df1.append(df2),效果与pd.concat([df1, df2]) 一样
Pandas 的 append() 不直接更新原有对象的值