在熊猫v1.0.3上访问具有多级索引的数据框

时间:2020-06-10 15:13:56

标签: pandas multi-index python-3.8

我正在尝试通过

访问数据框dtSortedTable的一行
dtSortedTable.loc[decisionCountSorted.index[0]]

dtSortedTable是

         X0  X1  X2
(D1, G2)  A   B   C
(D2, G1)  A  A  A
(D2, G0)  A  A   C

decisionCountSorted索引如下:

Index([('D1', 'G2'), ('D2', 'G1'), ('D2', 'G0')], dtype='object')

decisionCountSorted的索引与dtSortedTable完全相同。索引分为2级。为什么会出现以下错误?我需要对DecisionCountSorted运行一些测试,并从dtSortedTable中提取相应的行。任何帮助将不胜感激!

Traceback (most recent call last):
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2646, in get_loc
    return self._engine.get_loc(key)
  File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'D1'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/tkazi/Documents/Code/logicsim/logic.py", line 183, in <module>
    dtFixed = dtConsensus(dtSortedTable,quorumCount)
  File "/Users/tkazi/Documents/Code/logicsim/logic.py", line 119, in dtConsensus
    print(dtSortedTable.loc[decisionCountSorted.index[0]])
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexing.py", line 1762, in __getitem__
    return self._getitem_tuple(key)
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexing.py", line 1272, in _getitem_tuple
    return self._getitem_lowerdim(tup)
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexing.py", line 1389, in _getitem_lowerdim
    section = self._getitem_axis(key, axis=i)
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexing.py", line 1965, in _getitem_axis
    return self._get_label(key, axis=axis)
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexing.py", line 625, in _get_label
    return self.obj._xs(label, axis=axis)
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/generic.py", line 3537, in xs
    loc = self.index.get_loc(key)
  File "/usr/local/Caskroom/miniconda/base/envs/logicsim/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2648, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'D1'

0 个答案:

没有答案