This question already has answers here:
Pandas join/merge/concat two dataframes

(2个答案)


4年前关闭。




我有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

最佳答案

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

10-04 10:59
查看更多