簡體   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