Python使用groupby求均值后绘制各电影平均得分横向条形图问题
你已经完成了数据读取、分组计算电影平均得分的前置步骤,后续只需要补充条形图绘制、图表配置和展示的代码即可。
可直接追加的完整代码
# 绘制横向条形图:第一个参数传入y轴的电影名称,第二个参数传入对应的平均得分 plt.barh(labels, values) # 补充坐标轴与标题说明,提升可读性 plt.xlabel('平均得分') plt.ylabel('电影名称') plt.title('各电影平均得分对比') # 自动调整布局,避免长电影名称被截断 plt.tight_layout() # 弹出窗口展示生成的图表 plt.show()
可选优化方案
- 如果你想让图表按得分高低排序展示,可以在计算完
mean之后添加排序代码:# ascending=True时条形从上到下得分从低到高,改成False则从高到低 mean = mean.sort_values(by='Score', ascending=True) # 排序后重新赋值标签和数值 labels = mean.index.values values = mean['Score'].values - 如果你运行分组求平均的代码时出现类型告警,可以将原代码里的分组语句修改为更严谨的写法,直接指定要计算均值的字段:
mean = df.groupby(['Name of Movie'], as_index=False)['Score'].mean()
内容的提问来源于stack exchange,提问作者Ricardo Ortega
相关产品推荐
相关产品推荐

