首页 > 解决方案 > 有没有办法在行和列索引上合并熊猫数据框?

问题描述

我想合并两个共享相同索引以及一些列的熊猫数据框。pd.merge 创建重复的列,但我想同时在两个轴上合并。

尝试了 pd.merge 和 pd.concat 但没有得到正确的结果。

我的尝试:df3=pd.merge(df1, df2, left_index=True, right_index=True, how='left')

df1

     Var#1  Var#2  Var#3  Var#4  Var#5  Var#6  Var#7
ID                                                  
323      7      6      8    7.0    2.0    2.0   10.0
324      2      1      5    3.0    4.0    2.0    1.0
675      9      8      1    NaN    NaN    NaN    NaN
676      3      7      2    NaN    NaN    NaN    NaN

df2

     Var#6  Var#7  Var#8  Var#9
ID                             
675      1      9      2      8
676      3      2      0      7

理想情况下,我会得到:

df3

     Var#1  Var#2  Var#3  Var#4  Var#5  Var#6  Var#7 Var#8   Var#9
ID                                                  
323      7      6      8    7.0    2.0    2.0   10.0  NaN    NaN
324      2      1      5    3.0    4.0    2.0    1.0  NaN    NaN
675      9      8      1    NaN    NaN    1      9    2      8
676      3      7      2    NaN    NaN    3      2    0      7

标签: pandasdataframemerge

解决方案


IIUC,使用df.combine_first()

df3=df1.combine_first(df2)
print(df3)

      Var#1  Var#2  Var#3  Var#4  Var#5  Var#6  Var#7  Var#8  Var#9
ID                                                                
323      7      6      8    7.0    2.0    2.0   10.0    NaN    NaN
324      2      1      5    3.0    4.0    2.0    1.0    NaN    NaN
675      9      8      1    NaN    NaN    1.0    9.0    2.0    8.0
676      3      7      2    NaN    NaN    3.0    2.0    0.0    7.0

推荐阅读