我试图聚合我的分钟&一年中最高温度为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列,但它不在我的列列表中。当我在此之前将索引设置为Date时,没有错误。关于我做错什么的任何想法?
答案 0 :(得分:0)
您似乎已将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