Ошибка Python _getitem_ и _getitem_column (key) при загрузке данных из Excel - PullRequest
1 голос
/ 19 сентября 2019

У меня есть датафрейм с 20 различными листами.Он работал нормально для первых 16 листов, но на 17-м листе возникла ошибка.Вот мой код:

A=A.sort_values(by=['timing','id'])

Ошибка была:

Traceback (most recent call last):

  File "<ipython-input-24-11bf4f35bb1b>", line 1, in <module>
    SessionNumber(5)

  File "filepath", line 160
    DepthBuyA=DepthBuyA.sort_values(by=['timing','id'])

  File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 4411, in sort_values
    stacklevel=stacklevel)

  File "C:\Anaconda\lib\site-packages\pandas\core\generic.py", line 1382, in _get_label_or_level_values
    raise KeyError(key)

KeyError: 'id'

Поэтому я подумал, что должна быть некоторая проблема со столбцом id на этом конкретном листе, потому что другие листытакже имел 'id' и ни один из которых не вызвал такую ​​ошибку.Поэтому я попытался:

print(A['id'])

И он успешно напечатал столбец «id» для листа 17, однако сразу после его печати возникла эта ошибка:

  File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 2688, in __getitem__
    return self._getitem_column(key)

  File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 2695, in _getitem_column
    return self._get_item_cache(key)

  File "C:\Anaconda\lib\site-packages\pandas\core\generic.py", line 2489, in _get_item_cache
    values = self._data.get(item)

  File "C:\Anaconda\lib\site-packages\pandas\core\internals.py", line 4115, in get
    loc = self.items.get_loc(item)

  File "C:\Anaconda\lib\site-packages\pandas\core\indexes\base.py", line 3080, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))

  File "pandas\_libs\index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc

  File "pandas\_libs\index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc

  File "pandas\_libs\hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item

  File "pandas\_libs\hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item

KeyError: 'id'

Так что после этогоЯ попробовал код, поместив его прямо в консоль, и теперь нет ошибки.

A=A.sort_values(by=['timing','id'])

Так в чем проблема и что я могу сделать, чтобы исправить?Спасибо!

1 Ответ

1 голос
/ 19 сентября 2019

Использовал индекс столбца вместо имени, теперь все нормально

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