[英]Simple pandas MultiIndex slicing
我有以下DataFrame
:
df_1 = DataFrame({
"alpha" : [1,1,1,2,2,2,3,3,3] ,
"beta" : [3,4,5,3,4,5,3,4,5] ,
"val_1" : ["x", "y" , "z", "w", "a", "b", "v1" , "v2" , "v3" ] ,
"val_2" : ["z1", "z2" , "z3", "w1", "w2", "w3" , "zz1" , "zz2" , "zz3" ]
})
df_1.set_index(["alpha", "beta"], inplace=True)
我試圖選擇以下突出顯示的行:
也就是說, beta
每一行都是3或5。
我已多次瀏覽pandas文檔,但無法找到解決方法。 我最接近我認為必須回答的是:
df_1.xs((3,5), level="beta", drop_level=False)
現在哪個失敗了。 得到這個的正確索引/切片方法是什么?
您可以使用DF.query()
方法根據指定的值進行子集化:
df_1.query('beta == 3 or beta == 5') # More succintly : df_1.query('beta == [3,5]')
您可以使用pd.IndexSlice
。 文檔中有一個非常類似的例子 。
df_1.loc[pd.IndexSlice[:, [3,5]], :]
val_1 val_2
alpha beta
1 3 x z1
5 z z3
2 3 w w1
5 b w3
3 3 v1 zz1
5 v3 zz3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.