Не могу понять ключевую ошибку, вызванную пандами в ноутбуке Jupyter - PullRequest
0 голосов
/ 26 ноября 2018

Итак, вот часть кода с отмеченной проблемой.Я думаю, что проблема может быть вызвана обновлением панд, потому что давным-давно все, казалось, работало нормально.TY

Прочитать в классе оценки

df = pd.read_csv('data/student-mat.csv')

Отфильтровать оценки, которые были 0

df = df[~df['G3'].isin([0, 1])]

df = df.rename(columns={'G3': 'Grade'})

df.head()
------------------------------------------------
------------------------------------------------
------------------------------------------------
------------------------------------------------
------------------------------------------------

Журнал:

KeyError                                  Traceback (most recent call last)
~\Anaconda51\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
   3077             try:
-> 3078                 return self._engine.get_loc(key)
   3079             except KeyError:

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

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

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'G3'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-4-2948d93a326d> in <module>()
      3 
      4 # Filter out grades that were 0
----> 5 df = df[~df['G3'].isin([0, 1])]
      6 
      7 df = df.rename(columns={'G3': 'Grade'})

~\Anaconda51\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
   2686             return self._getitem_multilevel(key)
   2687         else:
-> 2688             return self._getitem_column(key)
   2689 
   2690     def _getitem_column(self, key):

~\Anaconda51\lib\site-packages\pandas\core\frame.py in _getitem_column(self, key)
   2693         # get column
   2694         if self.columns.is_unique:
-> 2695             return self._get_item_cache(key)
   2696 
   2697         # duplicate columns & possible reduce dimensionality

~\Anaconda51\lib\site-packages\pandas\core\generic.py in _get_item_cache(self, item)
   2487         res = cache.get(item)
   2488         if res is None:
-> 2489             values = self._data.get(item)
   2490             res = self._box_item_values(item, values)
   2491             cache[item] = res

~\Anaconda51\lib\site-packages\pandas\core\internals.py in get(self, item, fastpath)
   4113 
   4114             if not isna(item):
-> 4115                 loc = self.items.get_loc(item)
   4116             else:
   4117                 indexer = np.arange(len(self.items))[isna(self.items)]

~\Anaconda51\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
   3078                 return self._engine.get_loc(key)
   3079             except KeyError:
-> 3080                 return self._engine.get_loc(self._maybe_cast_indexer(key))
   3081 
   3082         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()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'G3'

1 Ответ

0 голосов
/ 26 ноября 2018

Во второй раз, когда вы запускаете ноутбук, у вас больше нет «G3», так как теперь он «Grade».

Что вам нужно сделать, это сделать ваши ячейки согласованными, а не писать их такэтот код внутри одной ячейки зависит от состояния предыдущей ячейки.

Например, в этом случае ячейка для удаления «G3» из набора данных должна быть отдельной ячейкой, чтобы вы знали, что afetrв этой ячейке вы больше не можете использовать G3.

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