垂直合并2个数据帧

And*_*zma 3 python merge pandas

我有2个数据帧,每个数据帧有2列(相同的列名).我想垂直合并它们以最终拥有一个新的数据帧.

做的时候

newdf = df.merge(df1,how='left',on=['Col1','Col2'])
Run Code Online (Sandbox Code Playgroud)

新的df只有来自的行df和没有来自的行df1.这可能发生的原因是什么?

Col1    Col2
asd     1232
cac     2324
.....
Run Code Online (Sandbox Code Playgroud)

而且df1是:

Col1    Col2
afaf    1213
asas    4353
Run Code Online (Sandbox Code Playgroud)

新数据框newdf应该是:

Col1   Col2
asd     1232
cac     2324
afaf    1213
asas    4353
Run Code Online (Sandbox Code Playgroud)

Zer*_*ero 11

如果您不想按原样使用索引值,则可以使用append和使用ignore_index.

In [14]: df1.append(df2)
Out[14]:
   Col1  Col2
0   asd  1232
1   cac  2324
0  afaf  1213
1  asas  4353

In [15]: df1.append(df2, ignore_index=True)
Out[15]:
   Col1  Col2
0   asd  1232
1   cac  2324
2  afaf  1213
3  asas  4353
Run Code Online (Sandbox Code Playgroud)

或使用 pd.concat

In [16]: pd.concat([df1, df2])
Out[16]:
   Col1  Col2
0   asd  1232
1   cac  2324
0  afaf  1213
1  asas  4353

In [17]: pd.concat([df1, df2], ignore_index=True)
Out[17]:
   Col1  Col2
0   asd  1232
1   cac  2324
2  afaf  1213
3  asas  4353
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 pd.concat([df1, df2, df3, df4], axis=1)` 垂直连接。 (4认同)
  • 追加比合并花费的时间更少。 (2认同)
  • 如果我想垂直连接 2 个以上的数据帧,我还可以使用这个吗? (2认同)