首页 > 解决方案 > Python 3.9 - Jupyter - Pandas - DataFrame:聚合后按列丢失

问题描述

我有一个数据框,.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'])

键错误:'年份'

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

标签: pandasdataframepython-3.9

解决方案


之后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'])

推荐阅读