pandas数据合并与重塑
1 contact
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False)
objs: series/dataframe/panel构成的序列list
axis:需要合并链接的轴,0是行,1是列
join:连接的方式 inner/outer
1.1 相同字段的表首尾相接
table1:
A | B | C | |
---|---|---|---|
0 | A0 | B0 | C0 |
1 | A1 | B1 | C1 |
table2:
A | B | C | |
---|---|---|---|
2 | A2 | B2 | C2 |
3 | A3 | B3 | C3 |
table3:
A | B | C | |
---|---|---|---|
4 | A4 | B4 | C4 |
5 | A5 | B5 | C5 |
# 先将表构成list,然后在作为concat的输入
In [4]: frames = [table1, table2, table3]
In [5]: result = pd.concat(frames)
Result:
A | B | C | |
---|---|---|---|
0 | A0 | B0 | C0 |
1 | A1 | B1 | C1 |
2 | A2 | B2 | C2 |
3 | A3 | B3 | C3 |
4 | A4 | B4 | C4 |
5 | A5 | B5 | C5 |
要在相接的时候在加上一个层次的key来识别数据源自于哪张表,可以增加key参数
In [6]: result = pd.concat(frames, keys=['x', 'y', 'z'])
Result:
A | B | C | ||
---|---|---|---|---|
x | 0 | A0 | B0 | C0 |
x | 1 | A1 | B1 | C1 |
y | 2 | A2 | B2 | C2 |
y | 3 | A3 | B3 | C3 |
z | 4 | A4 | B4 | C4 |
z | 5 | A5 | B5 | C5 |
网友评论