【问题标题】:Compare Cumulative Sales per Year-End比较每年年底的累计销售额
【发布时间】:2020-03-17 09:54:41
【问题描述】:

使用此示例数据框:

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”随着它的增长。

任何帮助将不胜感激!

【问题讨论】:

    标签: pandas seaborn


    【解决方案1】:

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

    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 分组,随心所欲。

    【讨论】:

    • 谢谢,广!一个问题 - 你为什么使用 to_period('Q-APR') 而不是 'A-APR'?我也不确定如何将这些信息带到图表中。感谢您的帮助!
    • 老实说,我不知道'A-APR' 是一个东西:D。这当然是一个更好的解决方案,所以你不需要这样做dt.qyear :-)
    猜你喜欢
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多