Получение «return self.ошибка _engine.get_loc (casted_key)» при работе с библиотекой pandas

#python #pandas #tensorflow

#python #pandas #тензорный поток

Вопрос:

Я хотел попробовать этот фрагмент кода, который я нашел в Интернете,

 from __future__ import absolute_import, division, print_function, unicode_literals

import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from IPython.display import clear_output
from six.moves import urllib

dftrain = pd.read_csv("train.csv", header=0, delimiter=",")  # training data
dfeval = pd.read_csv("eval.csv", header=0, delimiter=",")  # testing data
# print(dftrain)
y_train = dftrain.pop('survived')
y_eval = dfeval.pop('survived')


CATEGORICAL_COLUMNS = ['sec', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone']
NUMERICAL_COLUMNS = ['age', 'fare']

feature_columns = []
for feature_name in CATEGORICAL_COLUMNS:
    vocabulary = dftrain[feature_name].unique()
    feature_columns.append(tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary))

for feature_name in NUMERICAL_COLUMNS:
    feature_columns.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))
  

к сожалению, я всегда получаю эту ошибку:

 Traceback (most recent call last):
  File "C:UsersMichaelPycharmProjectslearningTensorv3venvlibsite-packagespandascoreindexesbase.py", line 2889, in get_loc
    return self._engine.get_loc(casted_key)
  File "pandas_libsindex.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
  File "pandas_libsindex.pyx", line 97, in pandas._libs.index.IndexEngine.get_loc
  File "pandas_libshashtable_class_helper.pxi", line 1675, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas_libshashtable_class_helper.pxi", line 1683, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'sec'
  

(Это должно быть связано с первым оператором «for», но я не смог разобраться в этом самостоятельно, поэтому я надеюсь, что кто-нибудь сможет мне помочь)
Есть еще 2 случая этой ошибки при переполнении стека, и в обоих из них это были просто панды, ведущие себя странно.
Я попытался переустановить все библиотеки, проверить наличие обновлений IDE (я использую PyCharm), использовать более старые версии библиотек и изменить это выражение «for», к сожалению, ничего не помогло.

Ответ №1:

Возможно, это не основная причина вашей ошибки, но я наткнулся на это сообщение при получении той же ошибки.

  • Для меня основной причиной была чисто ошибка усталости с моей стороны, когда я ссылался на requests.get вызов, который был назначен неправильно.
  • Программа не выдавала ошибку до нескольких строк позже, когда я попытался выполнить a transformation в своем столбце df, который изначально ссылался на данные api, которые не существовали.