加入多索引数据框和单索引数据框

时间:2018-06-10 16:22:25

标签: python pandas multi-index

我有一个多索引数据帧和一个索引pandas数据帧。我想根据关键属性" KeyColumn"加入它们。但是,我找不到最佳方法。如果有人能帮助我,请告诉我。谢谢。

单个索引数据框

KeyColumn Column2 Column3 Column4 AttibuteColumn ValueColumn

   pk1    col2    col3    col4             AC          NO
   pk2    col2    col3    col4          COLOR        BLUE
   pk2    col2    col3    col4          COLOR         RED
   pk4    col2    col3    col4          COLOR       GREEN
   pk5    col2    col3    col4            CAR   HATCHBACK
   pk6    col2    col3    col4            CAR       SEDAN
   pk7    col2    col3    col4            CAR         SUV
   pk8    col2    col3    col4            CAR    2 SEATER
   pk9    col2    col3    col4             AC         YES
  pk10    col2    col3    col4             AC          NO

多级索引

                ValueColumn   

 AttibuteColumn          AC        CAR  COLOR

 KeyColumn                                   
 pk1                     NO       None   None
 pk10                    NO       None   None
 pk2                   None       None   BLUE
 pk4                   None       None  GREEN
 pk5                   None  HATCHBACK   None
 pk6                   None      SEDAN   None
 pk7                   None        SUV   None
 pk8                   None   2 SEATER   None
 pk9                    YES       None   None

1 个答案:

答案 0 :(得分:0)

使用join,但使用其他DataFrame而不使用MultiIndex

df = df1.join(df2.xs('ValueColumn', axis=1, level=0), on=['KeyColumn'])

或者:

df = df1.join(df2['ValueColumn'], on=['KeyColumn'])  

或者:

df2.columns = df2.columns.droplevel(0)
df = df1.join(df2, on=['KeyColumn'])