熊猫:过滤帧的访问索引

时间:2018-06-15 19:44:33

标签: python pandas

我有时希望过滤pandas多索引+多列帧以关注特定感兴趣的范围,然后访问相关索引以进行下游工作。假设我有以下帧df(3x索引级别,2x列级别):

Degree                      Bachelors              Masters                 
Group                       Black Hispanic Women   Black Hispanic Women   
CENSUS  SOC     CIP                                                             
foo     Unknown 01.0508         0        0     0       0        0     0   
0335    3434    01.0599         0        0     0       0        0     0   
0335    3434    01.0699         4        2    13       0        0     0   
0335    3434    01.0899        14        0    32       0        0     8   
0335    3434    01.1099         0        1     9       0        5    10

我可以执行p.loc[(slice(None),'Unknown',slice(None)),:]过滤到任何等于&#34;未知&#34;的SOC ID,无论CENSUS还是CIP id。< / p>

但是,当我尝试访问此子集的0级索引时,我返回的原始(整个)0级索引为df

[In]  p.loc[(slice(None),'Unknown',slice(None)),:].index.levels[0]
[Out] Index(['0335,'foo'], dtype='object', name='CENSUS', length=2)

作为当前的解决方法,我将reset_index()并访问一系列感兴趣的内容(本例中为CENSUS):

[In] p.loc[(slice(None),'Unknown',slice(None)),:].reset_index().CENSUS.values
[Out] array(['foo'], dtype=object)

是否有更加pythonic的方式来访问过滤的数据框的索引级别值?谢谢。

0 个答案:

没有答案