如何切片多索引系列

问题描述

我正在创建像这样的多索引系列:

  index = [ ('America','California',2000),('America',2010),('Asia','Delhi','HK','Texas',2010)
        ]

populations = [33871648,37253956,18976457,19378102,30861820,35145561,20851820,25145561]

new_index =  pd.MultiIndex.from_tuples(index)
pop = pd.Series(populations,index=new_index).sort_index()

我正在尝试检索这样的值:

pop['America'] # works
pop['America',2010] # works
pop['America','Texas'] # works

如何前往美国(除2010年以外)任何城市?

pop['America',:,2010] # not working

在这种情况下如何使用切片?

解决方法

使用:

idx = pd.IndexSlice
print (pop.loc[idx['America',:,2010]])
America  California  2010    37253956
         Texas       2010    25145561
dtype: int64

或者:

print (pop.loc['America',slice(None),2010])
America  California  2010    37253956
         Texas       2010    25145561
dtype: int64