Não é possível definir o índice de um quadro de dados do pandas - obtendo "KeyError"
Giro um quadro de dados que se parece com isso (summaryDF
):
accuracy f1 precision recall
0 0.494 0.722433 0.722433 0.722433
0 0.290 0.826087 0.826087 0.826087
0 0.274 0.629630 0.629630 0.629630
0 0.278 0.628571 0.628571 0.628571
0 0.288 0.718750 0.718750 0.718750
0 0.740 0.740000 0.740000 0.740000
0 0.698 0.765133 0.765133 0.765133
0 0.582 0.778547 0.778547 0.778547
0 0.682 0.748235 0.748235 0.748235
0 0.574 0.767918 0.767918 0.767918
0 0.398 0.711656 0.711656 0.711656
0 0.530 0.780083 0.780083 0.780083
Como eu sei o que cada linha deve ser, então eu estou usando esse código para definir os nomes de cada linha (esses não são os nomes das linhas reais, mas apenas por razões de argumento).
summaryDF = summaryDF.set_index(['A','B','C', 'D','E','F','G','H','I','J','K','L'])
No entanto, estou recebendo:
level = frame[col].values
File "/Users/me/anaconda/lib/python2.7/site-packages/pandas/core/frame.py", line 1797, in __getitem__
return self._getitem_column(key)
File "/Users/me/anaconda/lib/python2.7/site-packages/pandas/core/frame.py", line 1804, in _getitem_column
return self._get_item_cache(key)
File "/Users/me/anaconda/lib/python2.7/site-packages/pandas/core/generic.py", line 1084, in _get_item_cache
values = self._data.get(item)
File "/Users/me/anaconda/lib/python2.7/site-packages/pandas/core/internals.py", line 2851, in get
loc = self.items.get_loc(item)
File "/Users/me/anaconda/lib/python2.7/site-packages/pandas/core/index.py", line 1572, in get_loc
return self._engine.get_loc(_values_from_object(key))
File "pandas/index.pyx", line 134, in pandas.index.IndexEngine.get_loc (pandas/index.c:3824)
File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:3704)
File "pandas/hashtable.pyx", line 686, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12280)
File "pandas/hashtable.pyx", line 694, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12231)
KeyError: 'A'
Não tenho ideia do que estou fazendo de errado e pesquisei em toda parte. Alguma ideia?