【问题标题】:KeyError thrown when trying to access named index尝试访问命名索引时抛出 KeyError
【发布时间】:2017-10-16 04:25:11
【问题描述】:

我正在尝试汇总一年中 2 个不同州的最低和最高温度。我的数据框中的列是日期、名称、Tmax、Tmin。

但是,当我尝试使用时:

df['Year'], df['Month-Date'] = zip(*df['Date'].apply(lambda x: (x[:4], x[5:])))

它返回一个关键错误

使用 df.dtypes 返回:

NAME     object
TMAX    float64
TMIN    float64
dtype: object

因此,尽管我的数据框清楚地显示了日期列,但它不在我的列列表中。当我在此之前将索引设置为 Date 时,没有错误。关于我做错了什么有什么想法吗?

【问题讨论】:

    标签: python pandas datetime dataframe keyerror


    【解决方案1】:

    您似乎已将Date 设置为您的索引,因此,它自然不会显示为列之一。您现在可以使用df.index 来引用它。

    此外,我不建议对datetime 数据进行字符串操作。使用访问器并提取所需的日期组件。如果不是datetime 格式,请使用pd.to_datetime 并进行转换。

    # don't run this line if the index is a DateTimeIndex already
    y = pd.to_datetime(df.index, errors='coerce')                            
    df['Year'], df['Month-Date'] = y.year, y.month
    

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 2021-05-17
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      相关资源
      最近更新 更多