我有一个数据框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'] 不在索引中”
。
看起来这应该非常简单——我做错了什么?
谢谢
最佳答案
选项 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
关于Python:具有多索引的 dataframe.get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48158708/