如何在 Pandas 中使用 MultiIndex select 数据帧的行
How to select rows of a dataframe using MultiIndex in Pandas
我有这两个数据框需要关联。
第一个,HOLIDAYS,给我当地的节日日期和庆祝节日的商店代码
Holiday date
Store code
01/02
18005
01/02
18032
...
...
31/03
18043
第二个,BALANCE,以日期和门店数为索引,显示特定日期的门店余额。
balance
01/02
18001
,00
01/02
18002
,00
...
...
...
31/03
18099
,45
我需要做的是在 BALANCE 中创建一个名为 Holiday 的列,其中包含一个布尔值,显示某行是否显示假期期间获得的余额。
我尝试创建列 'Holiday' 将初始值设置为 False,然后将 BALANCE 数据帧索引中的每个 HOLIDAY 值分配给 True,我得到 ValueError(可能是因为无法传递数据帧作为其他的索引)。我尝试将 HOLIDAY 转换为 MultiIndex,但它再次不起作用。
BALANCE['Holiday'] = False
H = pd.MultiIndex.from_frame(HOLIDAY)
BALANCE.loc[H, 'Holiday'] = True
我很确定这应该不难,但我现在没主意了。有什么方法可以将第一个数据帧用作第二个数据帧的 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)
我有这两个数据框需要关联。
第一个,HOLIDAYS,给我当地的节日日期和庆祝节日的商店代码
Holiday date | Store code |
---|---|
01/02 | 18005 |
01/02 | 18032 |
... | ... |
31/03 | 18043 |
第二个,BALANCE,以日期和门店数为索引,显示特定日期的门店余额。
balance | ||
---|---|---|
01/02 | 18001 | ,00 |
01/02 | 18002 | ,00 |
... | ... | ... |
31/03 | 18099 | ,45 |
我需要做的是在 BALANCE 中创建一个名为 Holiday 的列,其中包含一个布尔值,显示某行是否显示假期期间获得的余额。
我尝试创建列 'Holiday' 将初始值设置为 False,然后将 BALANCE 数据帧索引中的每个 HOLIDAY 值分配给 True,我得到 ValueError(可能是因为无法传递数据帧作为其他的索引)。我尝试将 HOLIDAY 转换为 MultiIndex,但它再次不起作用。
BALANCE['Holiday'] = False
H = pd.MultiIndex.from_frame(HOLIDAY)
BALANCE.loc[H, 'Holiday'] = True
我很确定这应该不难,但我现在没主意了。有什么方法可以将第一个数据帧用作第二个数据帧的 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)