我试图显示我的客户进行交易的每一年的累计平均收入,基于客户的入职年份(第一笔交易)
我认为我需要使用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)
如果我是正确的(因为玩具数据仍然显示出一些不一致性,例如,对于给定的客户,“入职年份”不应该是相同的吗?),那么您正在寻找以下内容:
df['cumsum'] = df.groupby(['ClientId', 'Year']).Revenue.transform('cumsum')
这将产生:
相关问题 更多 >
编程相关推荐