【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作

文章目录

    • 七、合并数据集:Concat和Append操作
      • 1.知识回顾: NumPy数组的合并
      • 2.通过pd.concat实现简易合并
        • 1)索引重复
        • 2)类似join合并
        • 3)append()方法

七、合并数据集:Concat和Append操作

写一个构造Dataframe的函数
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第1张图片

1.知识回顾: NumPy数组的合并

np.concatenate 函数,axis 参数可以设置合并的坐标轴方向
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第2张图片

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 对象
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第3张图片
合并高维数据,相同列方向才能垂直合并,相同行索引才能水平合并
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第4张图片
否则横纵交叉
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第5张图片

1)索引重复

pd.concat 在合并时会保留索引,即使索引是重复的
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第6张图片
虽然 DataFrame 允许这么做,但如果结果并不是我们想要的,可以通过以下方法解决:

  • 捕捉索引重复的错误 :设置 verify_integrity 参数
    verify_integrity=False是默认的,将它改成True后,索引出现重复就会报错
    【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第7张图片
  • 忽略索引,重新设置:设置 ignore_index 参数
    【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第8张图片
  • 增加多级索引:keys 参数
    【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第9张图片

2)类似join合并

当存在要合并的Dataframe存在重合的列,可以设置join参数取并集或交集
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第10张图片
同样适用于行
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第11张图片
join_axes 参数直接指定保留的行名或列名
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第12张图片

3)append()方法

df1.append(df2),效果与pd.concat([df1, df2]) 一样
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第13张图片
Pandas 的 append() 不直接更新原有对象的值
【Python数据科学手册】Pandas——七、合并数据集:Concat和Append操作_第14张图片

你可能感兴趣的:(#,Python数据科学手册)