垂直合并2个数据帧

时间:2016-12-16 10:02:26

标签: python pandas merge

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

做的时候

newdf = df.merge(df1,how='left',on=['Col1','Col2'])

新df只包含df中的行,而df1中没有任何行。可能发生这种情况的原因是什么?

Col1    Col2
asd     1232
cac     2324
.....

df1是:

Col1    Col2
afaf    1213
asas    4353

新数据框newdf应为:

Col1   Col2
asd     1232
cac     2324
afaf    1213
asas    4353

1 个答案:

答案 0 :(得分:7)

如果您不想按原样使用索引值,可以使用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

或使用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