【发布时间】:2020-05-26 02:39:23
【问题描述】:
我的数据集有三列,即日期、销售和商品。 我想调查市场销售的趋势变化(如高峰或下降)发生在哪里。
Date Sold Item
01/02/2018 1 socks
01/03/2018 4 t-shirts
01/04/2018 3 pants
01/04/2018 2 shirts
01/05/2018 1 socks
...
12/12/2018 21 watches
12/12/2018 35 toys
...
12/22/2018 43 flowers
12/22/2018 25 toys
12/22/2018 32 shirts
12/22/2018 70 pijamas
...
12/31/2018 12 toys
12/31/2018 2 skirts
为此,我一直在考虑两件事:
- 每个日期的总销售额(例如 2018 年 1 月 2 日的 1 次;2018 年 1 月 3 日的 4 次;2018 年 1 月 4 日的 5 次等);
- 随时间变化的每件商品的销售数量(即分别查看随时间变化的每件商品的趋势)
第一个关键点应该很容易使用 groupby 评估;第二个关键点也应该可以通过使用 groupby 来实现。 但是,我的困难在于将所有项目绘制在同一个图中(最好是线图)。
我所做的是:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn
df = pd.read_csv("./MarketSales.csv")
sales_plot = df[Item].groupby("Sold").sum().sort_values("Sold",ascending=False).plot()
sales_plot.set_xlabel("Date")
sales_plot.set_ylabel("Frequency")
很遗憾,上面的代码没有产生预期的结果。 Python 中最具挑战性的话题是关于 groupby 和 plot 的使用。
我希望你能帮助我理解这种方法。
【问题讨论】:
标签: python pandas matplotlib