繁体   English   中英

如何在 Pandas 中使用 MultiIndex dataframe 的 select 行

[英]How to select rows of a dataframe using MultiIndex in Pandas

我有这两个需要关联的数据框。

第一个,HOLIDAYS,给我当地的节日日期和庆祝节日的商店代码

放假日期 商店代码
01/02 18005
01/02 18032
... ...
31/03 18043

第二个,BALANCE,显示了特定日期的商店余额,以日期和商店数量为索引。

平衡
01/02 18001 $35,00
01/02 18002 $38,00
... ... ...
31/03 18099 $20,45

我需要做的是在 BALANCE 中创建一个名为Holiday的列,其值为 boolean 以显示某一行是否显示在假期期间获得的余额。

我试图创建“假日”列,将初始值设置为 False,然后将 BALANCE dataframe 索引中的每个 HOLIDAY 值分配给 True,我得到 ValueError(可能是因为 dataframe 不能作为其他索引传递)。 我试图将 HOLIDAY 转换为 MultiIndex,但它再次不起作用。

BALANCE['Holiday'] = False
H = pd.MultiIndex.from_frame(HOLIDAY)
BALANCE.loc[H, 'Holiday'] = True

我很确定这应该不难,但我现在没主意了。 有什么办法可以将第一个 dataframe 作为第二个的 MultiIndex 使用?

您的示例没有任何匹配的行,但这应该有效:

HOLIDAYS['is_holiday'] = True

res = pd.merge(BALANCE,
               HOLIDAYS, 
               how='left',
               left_index=True, 
               right_on=['Holiday_date', 'Store_code'])

res['is_holiday'] = res['is_holiday'].fillna(False)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM