Python:带有多索引的dataframe.get()

时间:2018-01-08 22:03:24

标签: python pandas

我的数据框df的结构如下:

  from       rate   to
0  CHF   1.000000  CHF
1  CHF  19.673256  MXN
2  CHF   0.000000  ZAR
3  CHF   0.000775  XAU
4  CHF  32.961405  THB

我已将其重新编入索引如下:

               rate
from to            
CHF  CHF   1.000000
     MXN  19.675255
     ZAR   0.000000
     XAU   0.000775
     THB  32.961068
...

使用df = df.set_index(['from','to'],drop=True, append=False)

我想简单地使用一对索引在数据框上调用get。例如,我希望df[['CHF','MXN']]返回19.675255,但会引发错误,说明"['CHF' 'MXN'] not in index"

看起来这应该非常简单 - 我做错了什么?

由于

1 个答案:

答案 0 :(得分:1)

选项1
pd.IndexSlice

idx = pd.IndexSlice

df.loc[idx['CHF', 'MXN']]

rate    19.673256
Name: (CHF, MXN), dtype: float64

如果您想将结果作为标量,请致电.item -

df.loc[idx['CHF', 'MXN']].item()
19.673256

选项2
xs

df.xs(['CHF', 'MXN'])

rate    19.673256
Name: (CHF, MXN), dtype: float64