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'
解决这个问题的方法是什么?
在 groupby
和 agg
之后,列 Year
已成为数据帧的索引而不是列。因此它不能被称为列,因此 KeyError
。对于绘图,您可以参考 index
或将其省略,因为默认情况下会绘制索引。
plot.plot(df_grp_by_year.index, df_grp_by_year['Avg OHCL'])
或
plot.plot(df_grp_by_year['Avg OHCL'])
我有一个数据框,我 .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'
解决这个问题的方法是什么?
在 groupby
和 agg
之后,列 Year
已成为数据帧的索引而不是列。因此它不能被称为列,因此 KeyError
。对于绘图,您可以参考 index
或将其省略,因为默认情况下会绘制索引。
plot.plot(df_grp_by_year.index, df_grp_by_year['Avg OHCL'])
或
plot.plot(df_grp_by_year['Avg OHCL'])