KeyError:[……]不在索引中

2024-09-30 16:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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" in preprocess_features(zerlite_13X_error)


Tags: csvthetoindataframeparametertensorflowerror
1条回答
网友
1楼 · 发布于 2024-09-30 16:20:12

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

方法1

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

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

(也许还有其他专栏)。在

方法2

读取csv之后添加:

^{pr2}$

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

无论哪种情况

看看列名列表。它应该包含 “你的”名单。在

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

另一个可能的错误来源是逗号后的一个额外空格 (或在这一行的开头)。 不幸的是,read_cv不够聪明,无法过滤出这样的空格。 此函数只分割分隔符char上的标题行(在本例中为逗号) 每一个产生的“segment”都成为相应列的名称。在

在上面的例子中,这些额外的空格成为列名中的初始字符。在

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

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

相关问题 更多 >