首页 > 解决方案 > 按窗口扩展分组以计算 nunique

问题描述

我有以下df:

df=pd.DataFrame(data={'month':[1]*4+[2]*4+[3]*4,'customer':[1,2,3,4,1,5,6,7,2,3,10,7]})

我想创建一个扩展窗口来随时计算唯一客户的数量。以下 df 的输出应为:

{1:4,2:7,3:8}

因为在第一个月我们有 4 个不同的客户,在第二个,添加了 3 个(另一个是在第一个月,而在最后一个月只添加了一个(第 10 个))

谢谢

标签: pandaswindowpandas-groupby

解决方案


您可以先删除重复的客户(只保留第一个出现的客户),然后累积每月(现在唯一)客户的数量:

counts = df.drop_duplicates("customer").groupby("month").size().cumsum().to_dict()

要得到

>>> counts

{1: 4, 2: 7, 3: 8}

推荐阅读