此问题在此处已有答案:
Merge two dataframes by index(7个答案)
1年前关闭。
我有多个DataFrames
,它们都有不同的大小:
a
标题1 | 标题2 | |
---|---|---|
一百一十一 | 项目1 | 项目2 |
一百一十二 | 项目3 | 项目4 |
a = pd.DataFrame({
'Header1': ['item1', 'item3'],
'Header2': ['item2', 'item4']
}).set_index(pd.Index([111, 112]))
B
标题3 | 标题4 | |
---|---|---|
一百一十一 | 项目五 | 项目6 |
一百一十一 | 项目7 | 项目8 |
一百一十一 | 项目9 | 项目10 |
一百一十二 | 项目11 | 项目12 |
一百一十二 | 项目13 | 项目14 |
一百一十二 | 项目15 | 项目16 |
b = pd.DataFrame({
'Header3': ['item5', 'item7', 'item9', 'item11', 'item13', 'item15'],
'Header4': ['item6', 'item8', 'item10', 'item12', 'item14', 'item16']
}).set_index(pd.Index([111, 111, 111, 112, 112, 112]))
我想像这样连接这两个DataFrame:
c
标题1 | 标题2 | 标题3 | 标题4 | |
---|---|---|---|---|
一百一十一 | 项目1 | 项目2 | 项目五 | 项目6 |
一百一十一 | - - | - - | 项目7 | 项目8 |
一百一十一 | - - | - - | 项目9 | 项目10 |
一百一十二 | 项目3 | 项目4 | 项目11 | 项目12 |
一百一十二 | - - | - - | 项目13 | 项目14 |
一百一十二 | - - | - - | 项目15 | 项目16 |
当我将行添加到较小的DataFrame中时,我仍然不知道如何像这样排列行。
2条答案
按热度按时间n9vozmp41#
您可以简单地使用
pd.concat
,它会自动考虑索引:输出:
zte4gxcn2#
假设
Header1
和Header2
中的破折号表示填充相同的值,则join
a
和b
最简单: