python - 加入多索引数据帧和单索引数据帧
问题描述
我有一个多索引数据框和一个单索引熊猫数据框。我想根据关键属性“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
解决方案
使用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'])
推荐阅读
- asp.net-mvc - 写入 Session 会中断 ASP.NET MVC OpenId 登录
- python - 如何根据变量添加值?
- kubernetes - 显示完成的 Kubernetes ConfigMap
- pygame - 如何使用不在可用模式列表中的显示模式?
- powershell - Powershell 搜索特定字符串,然后在其后添加文本
- javascript - TypeError:尝试渲染数组时无法读取 ReactJS 中未定义的属性“映射”
- python - Scrapy:当有一段时间强烈的文本后,在没有类的情况下提取li中的文本
- python - 多级列上的熊猫数据框分组条件计数
- heroku - 突然,应用停止工作(Heroku)
- c# - C# - 如何在 WPF 中为元素添加背景模糊?