鉴于以下数据,每天有哪些用户活跃,我想使用Pandas计算每天新用户的数量。
OnPropertyChanged
我看到它的方式,步骤是:
有没有一种干净的方法来实现这一目标?
答案 0 :(得分: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()
)
答案 1 :(得分:1)
假设数据框首先按Exception in thread "Thread-2" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at Users.removeUsers(AuctionServer.java:211) //Relates to top of for loop
at ClientHandler.run(AuctionServer.java:435)
排序,您可以对Day
进行分组(设置UserID
),然后将结果的索引设置为as_index=False
。每天为您提供每个新用户。
Day
然后获取新用户总数:
df2 = df.groupby('UserID', as_index=False).Day.first().set_index('Day')
>>> df2
UserID
Day
1 A
1 B
1 C
2 D
2 E
3 F