Python – 如何将两个或多个 Pandas DataFrames 沿着行连接?
要连接超过两个 Pandas DataFrames,请使用 concat() 方法。将 axis 参数设置为 axis = 0 ,以沿行连接。首先,导入所需的库 −
import pandas as pd
让我们创建第一个 DataFrame −
dataFrame1 = pd.DataFrame(
{
"Col1": [10, 20, 30],"Col2": [40, 50, 60],"Col3": [70, 80, 90],
},
index=[0, 1, 2],
)
让我们创建第二个 DataFrame −
dataFrame2 = pd.DataFrame(
{
"Col1": [100, 110, 120],"Col2": [130, 140, 150],"Col3": [160, 170, 180],
},
index=[3, 4, 5],
)
让我们创建第三个 DataFrame −
dataFrame3 = pd.DataFrame(
{
"Col1": [200, 210, 220],"Col2": [230, 240, 250],"Col3": [260, 270, 280],
},
index=[6, 7, 8],
)
使用 concat() 将这所有的三个 DataFrame 连接起来。设置 “axis=1” 表示沿行连接 −
res = [dataFrame1, dataFrame2, dataFrame3]
pd.concat(res, axis=1)
更多Pandas文章,请阅读:Pandas教程
示例
下面是代码再现的效果 −
import pandas as pd
# 创建 DataFrame1
dataFrame1 = pd.DataFrame(
{
"Col1": [10, 20, 30],"Col2": [40, 50, 60],"Col3": [70, 80, 90],
},
index=[0, 1, 2],
)
# DataFrame1
print"DataFrame1...\n",dataFrame1
# 创建 DataFrame2
dataFrame2 = pd.DataFrame(
{
"Col1": [100, 110, 120],"Col2": [130, 140, 150],"Col3": [160, 170, 180],
},
index=[3, 4, 5],
)
# DataFrame2
print"DataFrame2...\n",dataFrame2
dataFrame3 = pd.DataFrame(
{
"Col1": [200, 210, 220],"Col2": [230, 240, 250],"Col3": [260, 270, 280],
},
index=[6, 7, 8],
)
# DataFrame3
print"DataFrame3...\n",dataFrame3
# 连接超过两个 dataframes
# set "axis=0" for concatenation along rows
res = [dataFrame1, dataFrame2, dataFrame3]
print"\n Concatenating all the 3 DataFrames (along rows)...\n", pd.concat(res, axis=0)
输出
会生成以下输出 –
DataFrame1...
Col1 Col2 Col3
0 10 40 70
1 20 50 80
2 30 60 90
DataFrame2...
Col1 Col2 Col3
3 100 130 160
4 110 140 170
5 120 150 180
DataFrame3...
Col1 Col2 Col3
6 200 230 260
7 210 240 270
8 220 250 Col3
Concatenating all the 3 DataFrames (along rows)...
Col1 Col2 Col3
0 10 40 70
1 20 50 80
2 30 60 90
3 100 130 160
4 110 140 170
5 120 150 180
6 200 230 260
7 210 240 270
8 220 250 280