我有一个多索引数据帧和一个索引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
答案 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'])