如何创建累积收入图?

问题描述

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

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

enter image description here

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

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

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

解决方法

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

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

这将产生:

result