Python KeyError:[…]不在索引中

Python KeyError:[…]不在索引中,python,pandas,keyerror,Python,Pandas,Keyerror,我对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_erro

我对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_features

preprocess_features(zerlite_13X_error)
KeyError:“[‘参数7’、‘参数8’、‘参数2’、‘参数3’、‘参数4’、‘参数5’、‘参数6’]不在索引中” 在预处理功能中(zerlite_13X_错误)


解决问题有两种最直观的方法:

方法1 使用任何文本编辑器打开源文件,并查看第一行。 它应该包含列名,用空格分隔。 在您的情况下,应该是这样的:

Parameter 1,Parameter 2,Parameter 3,Parameter 4,Parameter 5,Parameter 6,Parameter 7,Parameter 8
(也许还有其他专栏)

方法2 阅读完后添加:

此打印输出将显示刚刚读取的数据框的列名

无论如何 看一下列名列表。它应该包含 “你的”名单

如果缺少某些列,请相应地更正标题行并运行 再编一次

另一个可能的错误源是逗号后的额外空格 (或在此行的开头)。 不幸的是,read_csv不够聪明,无法过滤掉这样的空间。 此函数仅拆分分隔符char上的标题行(在本例中为逗号) 每个结果“段”成为相应列的名称

在上述情况下,这些额外的空格将成为列名中的初始字符

另一个可能的错误源是源文件不包含 任何标题行。 在这种情况下,您应该传递给read_csv您自己的列名列表 (names参数)它是与输入文件的实际内容相对应的顺序

还请注意,sep=','是不需要的,因为''只是默认值 此参数的值。所以,根据保持简单的规则,
避免使用默认值传递任何参数。

df的列似乎不包含“参数1”等。
打印什么(zerlite_13X_error.columns.values)
告诉您什么?顺便说一句,也许问答对你想做的事情很有帮助。谢谢你,伙计,我得到了正确的答案打印(zerlite_13X_error.columns.values)'真的很有帮助!
print(zerlite_13X_error.columns)