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

标签 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'] 不在索引中”

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

谢谢

最佳答案

选项 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/

相关文章:

python - python中编译的正则表达式对象的类型

python - 用 numPy 数组中的整数替换 bool 值

python - Pandas :将每一列聚合成逗号分隔的列表,不重复

python - 为所有缺失日期数据框复制前一天的行

python - Pandas :两个 datetime64 对象的差异产生 NaT 而不是正确的 timedelta 值

Python - 200万行表中的计数器

python - 在 JSON 序列化中嵌套一组带有新 header 的列

python - 在 AWS lambda 上使用 pydub

python - 使用 DateOffset 对 pandas DataFrame 进行索引和应用 func

python - 数字 cargo 市场