首页 > 解决方案 > 加入多索引数据帧和单索引数据帧

问题描述

我有一个多索引数据框和一个单索引熊猫数据框。我想根据关键属性“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

标签: pythonpandasmulti-index

解决方案


使用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'])  

推荐阅读