pandas - 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'])
键错误:'年份'
解决这个问题的方法是什么?
解决方案
之后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'])
推荐阅读
- angular - 在地图Angular agm中添加mapTypeOptions
- heroku - Buy hours from heroku
- mysql - replace() 不是函数 nodejs
- c++ - clarification on using std::unique_lock
- regex - 正则表达式仅匹配未注释的代码行
- ssl - 用于 https 访问的 tomcat 服务器上端口 443 上的 SSL 证书
- php - 用php获取json响应
- javascript - Replace date object in array with a string
- c# - TcpClient 检查数据包是否已收到?
- neo4j - neo4j 浏览器运行保存的脚本