首页 > 解决方案 > 在数据帧上使用多索引时出现 KeyError

问题描述

我有一个带有 2 个索引(矿物和年份)的数据框(df_final)。

                         Developed Countries   ...  Transition Countries 
Mineral      Year                              ...                       
Iron Fe      2014-01-01             543730900  ...              119680450
             2015-01-01             580394662  ...              113540570
             2016-01-01             608537133  ...              108977300
             2017-01-01             632252158  ...              109270430
             2018-01-01             648117225  ...              110999150
Chromium CrO 2014-01-01                451819  ...                2669000
             2015-01-01                457100  ...                2502900
             2016-01-01                469140  ...                2493000
             2017-01-01                416285  ...                2740200
             2018-01-01                509424  ...                3078100
Cobalt       2014-01-01                 15383  ...                   5400
             2015-01-01                 16298  ...                   5800
             2016-01-01                 15281  ...                   5600
             2017-01-01                 14032  ...                   4700
             2018-01-01                 12353  ...                   5330

使用此查询可以很好地返回数据:

df_final.loc['Gold','2014']

但是,我得到一个

键错误:'2014'

使用此查询:

df_final.loc[:,'2014']

有任何想法吗?

标签: pythonpandasmulti-index

解决方案


您可以使用它来获得Mineral所有Year= '2014'

df_final.loc[(df_final.index.levels[0], '2014'), :]

推荐阅读