首页 > 解决方案 > 如何索引和切片多索引熊猫数据框

问题描述

在下面的多索引数据框中,如何对其进行切片以便选择索引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

我可以sign == 1通过以下方式选择所有行:raw3.loc[(-1,)]. 如何添加附加条件csum_count == 8?。认为这raw3.loc[(-1,),'csum_count'==8]可能有效,但它没有。

标签: pythonpandas

解决方案


DataFrame.index.get_level_values()您可以通过调用并将要切片的索引的名称(或级别)传递给它来过滤多个索引。除此之外,您还可以在其中一列上添加条件。

raw3[(raw3.index.get_level_values('sign') == 1) & (raw3[csum_count == 8])]

推荐阅读