我对Python比较陌生,在做作业的时候,遇到了以下问题。这是 tensorflow 和 panda 的新入门zerlite_13X_error = pd.read_csv("zerlite_13x_error.csv", sep=",")def preprocess_features(zerlite_13X_error): """Prepares input features from zerlite_13X_error Args: zerlite_13X_error: A Pandas DataFrame expected to contain data Return: A DataFrame that contains the features to be used for the model.including synthetic features """ selected_features = zerlite_13X_error[ ["Parameter 1", "Parameter 2", "Parameter 3", "Parameter 4", "Parameter 5", "Parameter 6", "Parameter 7", "Parameter 8"]] processed_features = selected_features.copy() print(processed_features.head()) return processed_featurespreprocess_features(zerlite_13X_error)KeyError:“['Parameter 7', 'Parameter 8', 'Parameter 2', 'Parameter 3', 'Parameter 4', 'Parameter 5', 'Parameter 6'] not in index” in preprocess_features(zerlite_13X_error)
2 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
有两种最直观的方法可以解决您的问题:
方法一
使用任何文本编辑器打开源文件并查看第一行。它应该包含列名,用空格分隔。在你的情况下,它应该是这样的:
Parameter 1,Parameter 2,Parameter 3,Parameter 4,Parameter 5,Parameter 6,Parameter 7,Parameter 8
(也许还有其他一些专栏)。
方法二
就在read_csv添加:
print(zerlite_13X_error.columns)
此打印输出将显示刚刚读取的 DataFrame 的列名。
在任一情况下
查看列名列表。它应该包含“你的”列表中的每一列。
如果缺少某些列,请相应地更正标题行并再次运行您的程序。
另一个可能的错误来源可能是逗号后(或此行开头)的额外空格。不幸的是,read_csv不够聪明,无法过滤掉这些空格。此函数仅在分隔符 char 上拆分标题行(在本例中为逗号),并且每个生成的“段”成为相应列的名称。
在上述情况下,这些额外的空格成为列名中的初始字符。
另一个可能的错误来源是源文件不包含 任何标题行。在这种情况下,您应该将您自己的列名列表(名称参数)传递给read_csv ,它的顺序对应于输入文件的实际内容。
另请注意,不需要sep=',' ,因为','只是此参数的默认值。因此,根据Keep It Simple规则,避免使用默认值传递任何参数。
慕容708150
TA贡献1831条经验 获得超4个赞
所有的 Columns 都有一个空格"Parameter 1",我们在"Parameter 1". 我们需要摆脱它:
df = pd.read_csv(fileName)
df = df.rename({"Parameter 1": "Parameter_1"}, axis=1)
添加回答
举报
0/150
提交
取消