Pandas 比较每年年底的累计销售额
使用此示例数据帧:Pandas 比较每年年底的累计销售额,pandas,seaborn,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), 'Prod
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轴是增长时的“售出单位”
任何帮助都将不胜感激 将日期转换为会计季度并提取会计年度的一种方法:
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
现在你可以随心所欲地按会计年度分组。谢谢,广!一个问题-为什么你用“Q-APR”代替“A-APR”?我也不知道如何将这些信息带到图表中。谢谢你的帮助!老实说,我不知道
'A-APR'
是一件事:D.这当然是一个更好的解决方案,所以你不需要做dt.qyear
:-)