首页 > 解决方案 > 如何创建累积收入图?

问题描述

我试图根据客户入职年份(第一笔交易)显示我的客户每年进行交易的累积平均收入。

我想我需要使用groupby,但我想出了达到预期结果的最佳方法。我有一个示例图,我希望复制或(得到类似的东西):

在此处输入图像描述

图上的每一行代表“入职年份”。

我创建了一个玩具数据以使其更容易:

dataset = {'ClientId': [10,20,20,20,10,5,3,7,5,20,12,5],
           'Year Onboarded': [2019,2017,2018,2017,2020,2019,2017,2018,2019,2020,2018,2017],
           'Year': [2020,2018,2018,2017,2020,2020,2018,2019,2020,2020,2018,2019],
           'Revenue': [100,50,25,30,40,50,200,600,20,40,100,20]}
df = pd.DataFrame(data=dataset)

标签: pythonmatplotlibseabornplotnine

解决方案


如果我是正确的(因为玩具数据仍然显示出一些不一致,即对于给定的客户,“入职年份”不应该相同吗?),您正在寻找以下内容:

df['cumsum'] = df.groupby(['ClientId', 'Year']).Revenue.transform('cumsum')

这将产生:

结果


推荐阅读