Python 3.9 - Jupyter - Pandas - DataFrame:聚合后逐列缺失

Python 3.9 - Jupyter - Pandas - DataFrame : Missing group by column after aggregating

我有一个数据框,我 .groupby().agg() 之后数据聚合成功。但是,标签列,在这种情况下,Year 不再是可以引用以绘制数据的键。也就是说,Year 标签在打印数据框时可见。

聚合的代码:

df_grp_by_year = df_grp_by_year.groupby(
    df_grp_by_year['Year']).agg({
        'Avg OHCL': my_stats.get_arithmetic_mean,
        'Low': min,
        'High': max,
        'Med': my_stats.get_median, # statistics.median
        'Var': my_stats.get_variance, # statistics.pvariance
        'Std': my_stats.get_standard_deviation # statistics.pstdev
})

打印输出:

失败的代码和相关错误:

plot.plot(
    df_grp_by_year['Year'],
    df_grp_by_year['Avg OHCL'])

KeyError: 'Year'

解决这个问题的方法是什么?

groupbyagg 之后,列 Year 已成为数据帧的索引而不是列。因此它不能被称为列,因此 KeyError。对于绘图,您可以参考 index 或将其省略,因为默认情况下会绘制索引。

plot.plot(df_grp_by_year.index, df_grp_by_year['Avg OHCL'])

plot.plot(df_grp_by_year['Avg OHCL'])