【问题标题】:KeyError: [......] not in indexKeyError:[......] 不在索引中
【发布时间】:2020-02-03 09:49:49
【问题描述】:

我对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: "['Parameter 7', 'Parameter 8', 'Parameter 2', 'Parameter 3', 'Parameter 4', 'Parameter 5', 'Parameter 6'] not in index" 在 preprocess_features(zerlite_13X_error)

【问题讨论】:

  • 您的 df 列似乎不包含例如'参数 1' 等 - print(zerlite_13X_error.columns.values) 告诉你什么?顺便说一句,也许this Q&A 对你想做的事情有帮助。
  • 谢谢老哥,我已经得到正确答案了! 'print(zerlite_13X_error.columns.values)' 真的很有帮助!

标签: python pandas keyerror


【解决方案1】:

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

方法 1

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

Parameter 1,Parameter 2,Parameter 3,Parameter 4,Parameter 5,Parameter 6,Parameter 7,Parameter 8

(也许还有其他一些列)。

方法2

在 read_csv 之后添加:

print(zerlite_13X_error.columns)

此打印输出将显示刚刚读取的 DataFrame 的列名。

在任何一种情况下

查看列名列表。它应该包含来自的每一列 “你的”列表。

如果缺少某些列,请相应地更正标题行并运行您的 重新编程。

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

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

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

请注意,sep=',' 不是必需的,因为 ',' 只是默认设置 该参数的值。所以,根据 Keep It Simple 规则, 避免使用默认值传递任何参数。

【讨论】:

    猜你喜欢
    • 2018-05-16
    • 2017-11-04
    • 2021-08-23
    • 2016-11-22
    • 2018-04-30
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多