熊猫数据框多索引选择第一个索引第一个元素

时间:2019-03-25 03:28:56

标签: python pandas

这肯定是一个简单的问题,但是为我分割一个熊猫的多索引数据帧花费了太多时间。所以我寻求帮助。

我有一个这样的数据框:(不完整)

Product_Category  Category_001  Category_002  Category_003  Category_004  \
Warehouse Year                                                             
Whse_A    2011             NaN           NaN    108.000000           NaN   
          2012             NaN           NaN     70.685714           NaN   
          2013       10.086957           NaN     58.475138           NaN   
          2014       18.564516           NaN     71.526316           NaN   
          2015        7.125000           NaN     73.397260           NaN   
          2016        9.212121           NaN     65.900391           NaN   
Whse_C    2011       17.909091           NaN           NaN           NaN   
          2012       36.653374           NaN           NaN           NaN   
          2013       29.292553           NaN           NaN           NaN   
          2014       27.556098           NaN           NaN           NaN   
          2015       28.470356           NaN           NaN           NaN   
          2016       20.480734           NaN           NaN           NaN   
          2017             NaN           NaN           NaN           NaN   
Whse_J    2011       13.000000           NaN           NaN           NaN   
          2012       15.282823           NaN     33.446154           NaN   
          2013       15.574038           NaN     33.181518           NaN   
          2014       17.537404           NaN     23.289256           NaN   
          2015       17.950261           NaN     21.353760           NaN   
          2016       20.335565           NaN     32.150418           NaN   
          2017        7.250000           NaN           NaN           NaN 

它具有两个索引列:仓库和年份。
它具有33个原始列:Category_001至Category_33。

df1.index
MultiIndex(levels=[[2011, 2012, 2013, 2014, 2015, 2016, 2017], ['Whse_A', 'Whse_C', 'Whse_J', 'Whse_S']],
           codes=[[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4], [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]],
           names=['Year', 'Warehouse'])

我可以像这样对仓库“ Whse_A”和2011年进行切片:

df.loc[('Whse_A',2011)]

但是我在努力选择“ Whse_A”的所有年份?

相关链接: https://pandas-docs.github.io/pandas-docs-travis/user_guide/advanced.html

感谢您的帮助。

更新
一个想法是切片:

df.loc[('Whse_A',2011):('Whse_A',2017)]

但是,如果我们不知道开始和结束的年份,我们可以这样做吗?

类似的东西:

df.loc[('Whse_A',:)] 

1 个答案:

答案 0 :(得分:1)

尝试使用.loc

df.loc[['Whse_A']]
相关问题