首页 > 解决方案 > 如何“逐行合并”熊猫数据框

问题描述

我想合并 2 个 DataFrame,这样在新的 DataFrame 中,第一行 = df1 的第 1 行,第二行是 df2 的第一行等。

A=pd.DataFrame({'A':[1,3,5], 'B': [7,9,11]}, index = ['bs','ss','db'])
B=pd.DataFrame({'A':[2,4,6], 'B': [8,10,12]}, index = ['bs','ss','db'])

请注意,行和列标签完全相同,并且两个数据框具有相同的维度。

所以所需的输出应该看起来像

      A    B
bs_a  1    7
bs_b  2    8
ss_a  3    9
ss_b  4    10
db_a  5    11
db_b  6    12

我不熟悉 pandas 合并,在查看文档后我仍然不知道该怎么做

标签: pythonpandasmerge

解决方案


您可以concat使用keys,合并多个索引

s=pd.concat([A,B],keys=['a','b']).sort_index(level=1)
s.index=s.index.map('{0[1]}_{0[0]}'.format) 
s
Out[225]: 
      A   B
bs_a  1   7
bs_b  2   8
db_a  5  11
db_b  6  12
ss_a  3   9
ss_b  4  10

推荐阅读