pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
concat
可以一次合并多個表格最疆,通過索引來合并的吆视;
不像merge
,可以通過on
參數指定依據哪個列鲸沮。
df1
Out[365]:
A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
df2
Out[366]:
A B C D
1 A1 B4 C4 D4
2 A4 B5 C5 D5
3 A2 B6 C6 D6
4 A7 B7 C7 D7
df3
Out[367]:
A B C D
8 A0 B8 C8 D8
9 A2 B9 C9 D9
10 A4 B10 C10 D10
11 A8 B11 C11 D11
pd.concat([df1,df2,df3],axis=1) # 注意一下合并前后各個dataframe的index
Out[369]:
A B C D A B C D A B C D
0 A0 B0 C0 D0 NaN NaN NaN NaN NaN NaN NaN NaN
1 A1 B1 C1 D1 A1 B4 C4 D4 NaN NaN NaN NaN
2 A2 B2 C2 D2 A4 B5 C5 D5 NaN NaN NaN NaN
3 A3 B3 C3 D3 A2 B6 C6 D6 NaN NaN NaN NaN
4 NaN NaN NaN NaN A7 B7 C7 D7 NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN A0 B8 C8 D8
9 NaN NaN NaN NaN NaN NaN NaN NaN A2 B9 C9 D9
10 NaN NaN NaN NaN NaN NaN NaN NaN A4 B10 C10 D10
11 NaN NaN NaN NaN NaN NaN NaN NaN A8 B11 C11 D11
如果希望讓三個dataframe
都依據A
列來合并的話纫雁,可以先對dataframe
重建索引
pd.concat([df1.set_index('A'),df2.set_index('A'),df3.set_index('A')],axis=1,sort=False)
Out[371]:
B C D B C D B C D
A0 B0 C0 D0 NaN NaN NaN B8 C8 D8
A1 B1 C1 D1 B4 C4 D4 NaN NaN NaN
A2 B2 C2 D2 B6 C6 D6 B9 C9 D9
A3 B3 C3 D3 NaN NaN NaN NaN NaN NaN
A4 NaN NaN NaN B5 C5 D5 B10 C10 D10
A7 NaN NaN NaN B7 C7 D7 NaN NaN NaN
A8 NaN NaN NaN NaN NaN NaN B11 C11 D11