在 pandas 数据框中将数据框与多索引连接 [英] Concatenate dataframes with multi-index in pandas dataframe
本文介绍了在 pandas 数据框中将数据框与多索引连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个数据框df1
和df2
:
In [56]: df1.head()
Out[56]:
col7 col8 col9
alpha0 D0 alpha0 D0 alpha0 D0
F35_HC_531d.dat 1.103999 1.103999 1.364399 1.358938 3.171808 1.946894
F35_HC_532d.dat 0.000000 0.000000 1.636934 1.635594 4.359431 2.362530
F35_HC_533d.dat 0.826599 0.826599 1.463956 1.390134 3.860629 2.199387
F35_HC_534d.dat 1.055350 1.020555 3.112200 2.498257 3.394307 2.090668
F52_HC_472d.dat 3.808008 2.912733 3.594062 2.336720 3.027449 2.216112
In [62]: df2.head()
Out[62]:
col7 col8 col9
alpha1 alpha2 alpha1 alpha2 alpha1 alpha2
filename
F35_HC_532d.dat 1.0850 2.413 0.7914 6.072000 0.8418 5.328
M48_HC_551d.dat 0.7029 4.713 0.7309 2.922000 0.7823 3.546
M24_HC_458d.dat 0.7207 5.850 0.6772 5.699000 0.7135 5.620
M48_HC_552d.dat 0.7179 4.783 0.6481 4.131999 0.7010 3.408
M40_HC_506d.dat 0.7602 2.912 0.8420 5.690000 0.8354 1.910
我想合并这两个数据框.请注意,外部列名称对于两者而言都是相同的,因此我只想在一个新的数据框中看到4个子列.我尝试将concat用作:
I want to concat these two dataframes. Notice that the outer column names are same for both so I only want to see 4 sub-columns in a new dataframe. I tried using concat as:
df = pd.concat([df1, df2], axis = 1, levels = 0)
但是这会产生一个具有两次从col7
到col9
的列的数据框(因此该数据框有6个外部列).如何将第1层中的所有列放在相同的外部列名称下?
But this produces a dataframe with columns named from col7
to col9
twice (so the dataframe has 6 outer columns). How can I put all the columns in level 1 under same outer column names?
推荐答案
You can add sort_index
for sorting columns:
df = pd.concat([df1, df2], axis = 1, levels=0).sort_index(axis=1)
print (df)
col7 col8 \
D0 alpha0 alpha1 alpha2 D0 alpha0
F35_HC_531d.dat 1.103999 1.103999 NaN NaN 1.358938 1.364399
F35_HC_532d.dat 0.000000 0.000000 1.0850 2.413 1.635594 1.636934
F35_HC_533d.dat 0.826599 0.826599 NaN NaN 1.390134 1.463956
F35_HC_534d.dat 1.020555 1.055350 NaN NaN 2.498257 3.112200
F52_HC_472d.dat 2.912733 3.808008 NaN NaN 2.336720 3.594062
M24_HC_458d.dat NaN NaN 0.7207 5.850 NaN NaN
M40_HC_506d.dat NaN NaN 0.7602 2.912 NaN NaN
M48_HC_551d.dat NaN NaN 0.7029 4.713 NaN NaN
M48_HC_552d.dat NaN NaN 0.7179 4.783 NaN NaN
col9
alpha1 alpha2 D0 alpha0 alpha1 alpha2
F35_HC_531d.dat NaN NaN 1.946894 3.171808 NaN NaN
F35_HC_532d.dat 0.7914 6.072000 2.362530 4.359431 0.8418 5.328
F35_HC_533d.dat NaN NaN 2.199387 3.860629 NaN NaN
F35_HC_534d.dat NaN NaN 2.090668 3.394307 NaN NaN
F52_HC_472d.dat NaN NaN 2.216112 3.027449 NaN NaN
M24_HC_458d.dat 0.6772 5.699000 NaN NaN 0.7135 5.620
M40_HC_506d.dat 0.8420 5.690000 NaN NaN 0.8354 1.910
M48_HC_551d.dat 0.7309 2.922000 NaN NaN 0.7823 3.546
M48_HC_552d.dat 0.6481 4.131999 NaN NaN 0.7010 3.408
这篇关于在 pandas 数据框中将数据框与多索引连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文