给定以下数据,其中用户每天活跃,我想使用Pandas计算每天的新用户数量。
Data:
Day | UserID
----------
1 | A
1 | B
1 | C
1 | C
----------
2 | A
2 | B
2 | D
2 | A
2 | E
----------
3 | B
3 | D
3 | F
Result:
Day | New Users
---------------
1 | 3
2 | 2
3 | 1
字符串
在我看来,步骤是:
1.计算每天的最大用户ID:df.groupby('Day').UserID.max()
1.使用前一天的最大UserID过滤数据(初始化为0):* 这里我不知道如何使用Pandas*
1.计算筛选数据集上唯一用户的登录数。df.filtered.groupby('Day').UserID.nunique()
有没有一个干净的方法来实现这一点?
3条答案
按热度按时间osh3o9ms1#
这个构建为一个表,给出每个ID首次出现的日期,按日期分组,然后计算相应的行。
字符串
7vux5j2d2#
假设数组首先按
Day
排序,你可以在UserID
上分组(设置as_index=False
),然后将结果的索引设置为Day
。这会给你每天的每个新用户。字符串
然后获取新用户的总数:
型
rbpvctlc3#
一种有效的方法(不依赖于
groupby
)是通过在按天排序的数据集上按UserID运行drop_duplicates
,只保留每个UserID的第一次出现,然后使用value_counts
计算每天的用户数:字符串
输出量:
型