比较年底的累计销售额

时间:2020-03-17 01:35:31

标签: pandas seaborn

使用此示例数据框:

np.random.seed(1111)
df = pd.DataFrame({
'Category':np.random.choice( ['Group A','Group B','Group C','Group D'], 10000),
'Sub-Category':np.random.choice( ['X','Y','Z'], 10000),
'Sub-Category-2':np.random.choice( ['G','F','I'], 10000),
'Product':np.random.choice( ['Product 1','Product 2','Product 3'], 10000),
'Units_Sold':np.random.randint(1,100, size=(10000)),
'Dollars_Sold':np.random.randint(100,1000, size=10000),
'Customer':np.random.choice(pd.util.testing.rands_array(10,25,dtype='str'),10000),
'Date':np.random.choice( pd.date_range('1/1/2016','12/31/2020',  
                      freq='M'), 10000)})

我正在尝试将12个月的时间范围与seaborn地块进行分类比较。例如,我想比较每年4-30结束的每年的累积12个月与每年的同期。我无法全神贯注于如何获取每一年的连续数据总计(5/1 / 17-4 / 30 / 18、5 / 1 / 18-4 / 30 / 19、5 / 1 / 19-4 / 30/20)。日期只是示例-我希望能够比较不同的年终数据点,甚至更好地能够比较365天。例如,我希望将3/15 / 19-3 / 14/20与3/15 / 18-3 / 14/19等进行比较

我为每个“类别”(A,B,C,D)设想了一个图表,其中各年的线代表从5月1日的零开始的累计总数,直到下一年的4月30日为止。 x轴表示月份(从5月1日开始),y轴表示增长时为“ Units_Sold”。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

将日期转换为会计季度并提取会计年度的一种方法:

df = pd.DataFrame({'Date':pd.date_range('2019-01-01', '2019-12-31', freq='M'),
                   'Values':np.arange(12)})
df['fiscal_year'] = df.Date.dt.to_period('Q-APR').dt.qyear

输出:

         Date  Values  fiscal_year
0  2019-01-31       0         2019
1  2019-02-28       1         2019
2  2019-03-31       2         2019
3  2019-04-30       3         2019
4  2019-05-31       4         2020
5  2019-06-30       5         2020
6  2019-07-31       6         2020
7  2019-08-31       7         2020
8  2019-09-30       8         2020
9  2019-10-31       9         2020
10 2019-11-30      10         2020
11 2019-12-31      11         2020

现在您可以按fiscal_year分组您的内心内容。