[英]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.