![](/img/trans.png)
[英]How to slice a Pandas DataFrame with a MultiIndex index and a MultiIndex column?
[英]How to index and slice a multiindex pandas dataframe
在下面的多索引 dataframe 中,我如何對其進行切片以便我 select 行索引sign
== 1 和列csum_count == 8
?
In [15]: raw3.head(20)
Out[15]:
csum_count mean_return
sign cumsum
1 326 9 0.165
854 9 0.081
1346 9 0.055
1440 9 0.157
1554 9 0.069
418 8 0.082
578 8 0.119
638 8 0.113
896 8 0.076
1480 8 0.059
54 7 0.085
446 7 0.120
476 7 0.071
484 7 0.094
594 7 0.089
622 7 0.069
644 7 0.061
1018 7 0.080
1550 7 0.085
1736 7 0.201
我可以通過以下方式 select 所有帶有sign == 1
的行: raw3.loc[(-1,)]
。 如何添加csum_count == 8?
. 認為raw3.loc[(-1,),'csum_count'==8]
可能有效,但沒有。
您可以通過調用DataFrame.index.get_level_values()
過濾多個索引,並將要切片的索引的名稱(或級別)傳遞給它。 除此之外,您還可以在其中一列上添加條件。
raw3[(raw3.index.get_level_values('sign') == 1) & (raw3[csum_count == 8])]
您可以對 DataFrame 使用 .query() 方法,並傳遞 boolean 字符串。
在你的情況下, raw3.query('sign == 1 and cumsum == 8')
應該給你你想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.