计算每天在Pandas中看到的新ID的数量

bsu*_*ire 2 python pandas

鉴于以下数据,每天有哪些用户活跃,我想使用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
Run Code Online (Sandbox Code Playgroud)

我看到它的方式,步骤是:

  1. 计算每天的最大用户ID: df.groupby('Day').UserID.max()
  2. 使用前一天的最大UserID过滤数据(初始化为0):这里我不知道如何使用Pandas做到这一点
  3. 计算过滤数据集中唯一用户的登录数.df.filtered.groupby( '日').UserID.nunique()

有没有一个干净的方法来实现这一目标?

Tim*_*per 6

这个构建作为一个表,首先看到每个ID的日期,按天分组,然后计算相应的行.

df = pd.DataFrame([(1, "A"), (1, "B"), 
                   (1, "C"), (1, "C"), 
                   (2, "A"), (2, "B"), 
                   (2, "D"), (2, "A"), 
                   (2, "E"), (3, "B"), 
                   (3, "D"), (3, "F")], 
                  columns=["day", "userid"]) 

(df
  .sort_values('day')
  .groupby('userid')
  .first()
  .rename(columns={"day": "first_seen"})
  .groupby('first_seen').size()
)
Run Code Online (Sandbox Code Playgroud)