import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.arange(12).reshape(3, 4), columns=['A', 'B', 'C', 'D'])
df2 = pd.DataFrame(np.arange(12, 24).reshape(3, 4), columns=['A', 'B', 'C', 'D'])
df3 = pd.DataFrame(np.arange(24, 36).reshape(3, 4), columns=['A', 'B', 'C', 'D'])
print(df1)
print()
print(df2)
print()
print(df3)
print()
df4 = pd.concat([df1, df2, df3], axis=0) # 纵向合并
print(df4)
print()
df5 = pd.concat([df1, df2, df3], axis=0, ignore_index=True) # 不考虑原来的index
print(df5)
print()
df6 = pd.concat([df1, df2, df3], axis=1) # 横向合并
print(df6)
print()
df1 = pd.DataFrame(np.arange(12).reshape(3, 4), columns=['A', 'B', 'C', 'F'])
df2 = pd.DataFrame(np.arange(12, 24).reshape(3, 4), columns=['A', 'C', 'D', 'E'])
print(df1)
print()
print(df2)
print()
# 合并两个表,缺少的部分填充NaN
df7 = pd.concat([df1, df2], join='outer', ignore_index=True)
print(df7)
print()
# 合并两个表共同部分
df8 = pd.concat([df1, df2], join='inner', ignore_index=True)
print(df8
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
A B C D
0 12 13 14 15
1 16 17 18 19
2 20 21 22 23
A B C D
0 24 25 26 27
1 28 29 30 31
2 32 33 34 35
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
0 12 13 14 15
1 16 17 18 19
2 20 21 22 23
0 24 25 26 27
1 28 29 30 31
2 32 33 34 35
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
5 20 21 22 23
6 24 25 26 27
7 28 29 30 31
8 32 33 34 35
A B C D A B C D A B C D
0 0 1 2 3 12 13 14 15 24 25 26 27
1 4 5 6 7 16 17 18 19 28 29 30 31
2 8 9 10 11 20 21 22 23 32 33 34 35
A B C F
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
A C D E
0 12 13 14 15
1 16 17 18 19
2 20 21 22 23
A B C F D E
0 0 1.0 2 3.0 NaN NaN
1 4 5.0 6 7.0 NaN NaN
2 8 9.0 10 11.0 NaN NaN
3 12 NaN 13 NaN 14.0 15.0
4 16 NaN 17 NaN 18.0 19.0
5 20 NaN 21 NaN 22.0 23.0
A C
0 0 2
1 4 6
2 8 10
3 12 13
4 16 17
5 20 21