亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Pandas MultiIndex 選擇多行分層 DataFrame

使用 Pandas MultiIndex 選擇多行分層 DataFrame

肥皂起泡泡 2023-06-20 15:56:42
我有一個帶有 3 個級別的 MultiIndex 的 Pandas DataFrame。假設我有以下數據df = pd.DataFrame({'ColB': {('A1', 'B1', 1): 'cb1',  ('A1', 'B1', 2): 'cb2',  ('A1', 'B2', 1): 'cb3',  ('A1', 'B2', 2): 'cb4',  ('A2', 'B1', 1): 'cb5',  ('A2', 'B1', 2): 'cb6',  ('A2', 'B2', 1): 'cb7',  ('A2', 'B2', 2): 'cb8'}, 'colA': {('A1', 'B1', 1): 'ca1',  ('A1', 'B1', 2): 'ca2',  ('A1', 'B2', 1): 'ca3',  ('A1', 'B2', 2): 'ca4',  ('A2', 'B1', 1): 'ca5',  ('A2', 'B1', 2): 'ca6',  ('A2', 'B2', 1): 'ca7',  ('A2', 'B2', 2): 'ca8'}})        ColB colAA1 B1 1  cb1  ca1      2  cb2  ca2   B2 1  cb3  ca3      2  cb4  ca4A2 B1 1  cb5  ca5      2  cb6  ca6   B2 1  cb7  ca7      2  cb8  ca8現在,我有一個 MultiIndex 對象,其中包含前兩個級別的索引,例如MultiIndex([('A1', 'B2'),            ('A2', 'B1')],           )我想使用該 MultiIndex 來選擇與該 MultiIndex 對應的所有行,包括第 3 級的所有索引,例如,        ColB colAA1 B2 1  cb3  ca3      2  cb4  ca4A2 B1 1  cb5  ca5      2  cb6  ca6我怎樣才能做到這一點?我一直在尋找幾個小時的答案,但我仍然毫無頭緒。謝謝。
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

使用Index.isin刪除第 3 級并MultiIndex.droplevel過濾boolean indexing


df = df[df.index.droplevel(2).isin(mux)]

print (df)

? ? ? ? ColB colA

A1 B2 1? cb3? ca3

? ? ? 2? cb4? ca4

A2 B1 1? cb5? ca5

? ? ? 2? cb6? ca6

它適用于任何index:


mux = pd.MultiIndex.from_tuples([('A1', 'B1'),('A2', 'B2')])


df = df[df.index.droplevel(2).isin(mux)]

print (df)

? ? ? ? ColB colA

A1 B1 1? cb1? ca1

? ? ? 2? cb2? ca2

A2 B2 1? cb7? ca7

? ? ? 2? cb8? ca8


查看完整回答
反對 回復 2023-06-20
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

我想這就是你要找的,你可以試試。

    df[('A1','B1')]

KR,亞歷克斯


查看完整回答
反對 回復 2023-06-20
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

咱們試試吧Advanced indexing with hierarchical index

df.loc[('A1', 'B2'):('A2','B1')]


Out[56]:?

? ? ? ? ColB colA

A1 B2 1? cb3? ca3

? ? ? 2? cb4? ca4

A2 B1 1? cb5? ca5

? ? ? 2? cb6? ca6


查看完整回答
反對 回復 2023-06-20
  • 3 回答
  • 0 關注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號