Не удается получить доступ к MultiIndex DataFrame с именами уровней - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь использовать MultiIndexing впервые и не понимаю, почему я не могу индексировать DataFrame с помощью мнемонических имен напрямую, а не с помощью метода .loc, как при использовании одноуровневой индексациии, как показано в документации и нескольких примерах, с которыми я столкнулся в сети.

Ниже приведен упрощенный код и выходные данные двух методов:

import numpy as np
import pandas as pd
ext = ['ms0', 'ms1', 'ms2']
node = ['supply', 'vdd', 'id0']
index = pd.MultiIndex.from_product([ext, node],names=('extension', 'nodes'))
df = pd.DataFrame(np.random.randn(9, 1), index=index)
df

                           0
extension   nodes   
      ms0  supply   2.730935
              vdd  -1.771695
              id0   1.644740
      ms1  supply   1.086473
              vdd   0.234862
              id0   0.910154
      ms2  supply  -0.274787
              vdd   0.450530
              id0   0.197895

Следующие работы:

df.loc['ms0']

                    0
     nodes  
    supply   2.730935
       vdd  -1.771695
       id0   1.644740

Но это не так:

df['ms0']

...
D:\Apps\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in 
get_loc(self, key, method, tolerance)
   2525                 return self._engine.get_loc(key)
   2526             except KeyError:
-> 2527                 return 
self._engine.get_loc(self._maybe_cast_indexer(key))
   2528 
   2529         indexer = self.get_indexer([key], method=method, 
tolerance=tolerance)

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

KeyError: 'ms0'

Документация для MultiIndexing показывает этот пример:

In [25]: df['bar']
Out[25]: 
second       one       two
A       0.895717  0.805244
B       0.410835  0.813850
C      -1.413681  1.607920

Так почему нетэто работает в этом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...