我在尝试构建我的模型时,当我使用不同的数据集和不同的编码方式时,它能正常工作,但在另一段代码中,我使用了不同的编码方式和不同的数据集来构建我的模型,但似乎出现了这样的错误:
Traceback (most recent call last): File "C:\Users\user\AppData\Local\conda\conda\envs\myenv\lib\site-packages\pandas\core\indexes\base.py", line 3361, in get_loc return self._engine.get_loc(casted_key) File "pandas\_libs\index.pyx", line 76, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\hashtable_class_helper.pxi", line 5198, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas\_libs\hashtable_class_helper.pxi", line 5206, in pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: 'fbs'The above exception was the direct cause of the following exception:Traceback (most recent call last): File "heart_disease.py", line 11, in <module> dummy = pd.get_dummies(df[col], prefix=col) File "C:\Users\user\AppData\Local\conda\conda\envs\myenv\lib\site-packages\pandas\core\frame.py", line 3455, in __getitem__ indexer = self.columns.get_loc(key) File "C:\Users\user\AppData\Local\conda\conda\envs\myenv\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc raise KeyError(key) from errKeyError: 'fbs'
我的代码有问题还是不同的数据集有问题?这是我的代码和我的数据集
回答:
问题在于列名并非你所期望的那样,因为它们包含了空格。
从你的代码来看:
# 你的 DataFramepenguins = pd.read_csv('file.csv')
打印
penguins.columns
返回
Index(['age', ' sex', ' cp', ' trestbps', ' chol', ' fbs', ' restecg',' thalach', ' exang', ' oldpeak', ' slope', ' thal', ' diagnosis'],dtype='object')
如你所见,列名中包含了空格。我们可以通过在读取文件后立即执行以下操作来解决这个问题:
penguins.columns = penguins.columns.str.replace(' ', '')
这将解决你的错误。