У меня есть набор данных, содержащий столбцы: Отклонение от партийности, Демократ, Несогласие с партией по социальным вопросам, год отсчета для этого респондента. Отклонение от партийности, демократии, разногласий с партией по социальным вопросам было доступно в типе объектов, поэтому мне пришлось преобразовать их в строку, чтобы закодировать их в числовые данные.
'gss год для этого респондента' содержит год от 1970- 2000 и доступен в типе данных int, поэтому я не преобразовываю его в строку для выполнения кодирования. Ниже приведен код, который я использую:
#importing libraires
import pandas as pd
from sklearn.preprocessing import LabelEncoder
#importing data sets
df = pd.read_excel('sec3_data.xlsx')
df.fillna(0, inplace=True)
#converting categorical data to numeric data.
df['Deviation from Partisanship'] = df['Deviation from Partisanship'].astype('str')
le = preprocessing.LabelEncoder()
df['Deviation from Partisanship'] = le.fit_transform(df['Deviation from Partisanship'])
df['Democrat'] = df['Democrat'].astype('str')
le = preprocessing.LabelEncoder()
df['Democrat'] = le.fit_transform(df['Democrat'])
df['Disagreement with Party on Social Issues'] = df['Disagreement with Party on Social Issues'].astype('str')
le = preprocessing.LabelEncoder()
df['Disagreement with Party on Social Issues'] = le.fit_transform(df['Disagreement with Party on Social Issues'])
le = preprocessing.LabelEncoder()
df['gss year for this respondent'] = le.fit_transform(df['gss year for this respondent'])
pd.set_option('display.max_rows', 164)
df
Когда я запускаю этот код, он выдает мне следующую ошибку:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2896 try:
-> 2897 return self._engine.get_loc(key)
2898 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: 'gss year for this respondent'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
<ipython-input-44-fbfcad1e7a05> in <module>
13
14 le = preprocessing.LabelEncoder()
---> 15 df['gss year for this respondent'] = le.fit_transform(df['gss year for this respondent'])
16
17 pd.set_option('display.max_rows', 164)
~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
2978 if self.columns.nlevels > 1:
2979 return self._getitem_multilevel(key)
-> 2980 indexer = self.columns.get_loc(key)
2981 if is_integer(indexer):
2982 indexer = [indexer]
~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2897 return self._engine.get_loc(key)
2898 except KeyError:
-> 2899 return self._engine.get_loc(self._maybe_cast_indexer(key))
2900 indexer = self.get_indexer([key], method=method, tolerance=tolerance)
2901 if indexer.ndim > 1 or indexer.size > 1:
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: 'gss year for this respondent'
Есть идеи, почему я получаю эту ошибку?