python - 如何在Y轴上聚合数据并在python中绘制折线图
问题描述
我有如下数据。我想在 python 中绘制一个简单的折线图,其中 X 轴上的项目和 Y 轴上的总销售额。总销售额是项目级别的总销售额。
有人可以帮忙吗?
Item Date Sales
Item1 4/25/2018 55
Item2 4/25/2018 21
Item3 4/25/2018 50
Item4 4/25/2018 58
Item5 4/25/2018 81
Item6 4/25/2018 79
Item7 4/25/2018 61
Item8 4/25/2018 37
Item9 4/25/2018 51
Item10 4/25/2018 53
Item1 4/26/2018 27
Item2 4/26/2018 28
Item3 4/26/2018 26
Item4 4/26/2018 95
Item5 4/26/2018 15
Item6 4/26/2018 89
Item7 4/26/2018 42
Item8 4/26/2018 21
Item9 4/26/2018 39
Item10 4/26/2018 67
Item1 4/27/2018 14
Item2 4/27/2018 45
Item3 4/27/2018 35
Item4 4/27/2018 68
Item5 4/27/2018 76
Item6 4/27/2018 63
Item7 4/27/2018 73
Item8 4/27/2018 61
Item9 4/27/2018 59
Item10 4/27/2018 93
Item1 4/28/2018 27
Item2 4/28/2018 63
Item3 4/28/2018 55
Item4 4/28/2018 73
Item5 4/28/2018 58
Item6 4/28/2018 90
Item7 4/28/2018 67
Item8 4/28/2018 72
Item9 4/28/2018 64
Item10 4/28/2018 98
问候,菲利普
解决方案
使用 pandas,这可以通过将数据加载到数据框中、执行groupby并添加每个组的销售额值来实现。最终,pandas 包装了一些可以直接从 pandas 调用的常用 matplotlib 图。
# df['Date'] = pd.to_datetime(df['Date']) # For the desired plot it is not necessary but
# it is a good idea, and allow plots by date too
df.groupby(by='Item').sum().plot.bar(y='Sales',color='g')
这会生成以下图:
为了根据数字从 1 到 10 对项目进行排序,可以在绘图之前使用此答案。
推荐阅读
- azure - Azure VM 加密:aadAppname
- mysql - SQL:从另一个数据集中添加多个列
- jmeter - 如何将值bean shell采样器发送到jmeter中的rest api
- javascript - 有没有办法获取模型元素的坐标?
- python - 如果没有命中,则合并 2 个数据框并添加 NaN
- tkinter - 使用 cx_freeze 创建的 tkinter 应用程序的 MSI 不起作用
- php - 如何从textarea获取多行数据到mysql
- sql - 来自动态列的 SQL 数据透视表
- configuration - 你能用 Cargo 在依赖树上分享 `cfg!` 吗?
- c# - Xamarin Forms:启动阻塞 GC 显式