利用Pandas进行数据预处理:数据合并

ry Lee ◉‿◉

1. 数据的合并:concat

1.1 concat的语法说明

1
2
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, 
levels=None, names=None, verify_integrity=False, copy=True)

参数说明:

  • objs: 由Series和DataFrame对象构成的顺序表或映射。如果传入的是字典型数据,字典的键会在排序后传入参数keys中,除非参数keys传入其他内容。任何None类型的对象都会被丢弃,如果所有数据都是None类型,则会抛出一个ValueError。
  • axis: {0, 1, …},默认为0. 要连接的轴。
  • join: {‘inner’, ‘outer’},默认为’outer’。如何处理其他轴上的数据,’outer’执行并集操作,’inner’执行交集操作。
  • ignore_index: 布尔值,默认为False。如果为True,不使用拼接轴向上的索引,结果重新生成一个从0到n-1的整数型索引。如果拼接前的对象所使用的索引没有特殊含义的话,通常会选择重新生成索引。
  • keys: 顺序表,默认为None。传入的序列表会作为拼接结果中沿拼接轴上最外层的索引。
  • levels: 由顺序表构成的列表(List),默认为None。拼接轴上的多层索引,默认情况下会自动生成,如果有需要,可以用该参数指定(值需要唯一)。
  • names: 列表(List),默认为None。设置多层索引中每一层的名字。
  • verify_integrity: 布尔值,默认为False。如果为True,拼接时会检查拼接轴上的标签是否有重复项。
  • copy: 布尔值,默认为True。如果为False,拼接结果不使用拷贝数据(谨慎使用,会造成原数据与拼接后的新数据产生关联)。

1.2 使用默认参数

df1
1
2
3
4
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'E': ['E0', 'E1', 'E2', 'E3']},
index=[0, 1, 2, 3])
df2
1
2
3
4
5
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6'],
'B': ['B4', 'B5', 'B6'],
'C': ['C4', 'C5', 'C6'],
'D': ['D4', 'D5', 'D6']},
index=[0, 1, 2])
默认参数连接
1
pd.concat([df1, df2])  # 使用默认参数拼接
df1 df2 result
df1 df2 result

1.3 改变连接轴向

改变axis
1
pd.concat([df1, df2], axis=1)  # 将轴向改为axis=1
df1 df2 result
df1 df2 result-concat-axis=1

2. 数据库式连接数据:merge和join

  • 标题: 利用Pandas进行数据预处理:数据合并
  • 作者: ry Lee
  • 创建于 : 2023-02-15 16:16:46
  • 更新于 : 2023-11-28 12:17:56
  • 链接: https://blog.rylee.fun/2023/02/15/pandas-data-preprocessing-combine/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论