Skip to main content
 首页 » 编程设计

python之计算python中值的重复出现

2025年05月04日14del

我有一个包含如下内容的数据集:

SNo  Cookie 
1       A 
2       A 
3       A 
4       B 
5       C 
6       D 
7       A 
8       B 
9       D 
10      E 
11      D 
12      A 

假设我们有 5 个 cookie 'A,B,C,D,E'。现在我想计算在遇到新 cookie 后是否有任何 cookie 重新出现。例如,在上面的示例中,cookie A 在第 7 位再次遇到,然后也在第 12 位遇到。 注意 我们不会将 A 算在第 2 位,因为它同时出现,但在第 7 位和第 12 位,我们在再次看到 A 之前已经看到了许多新的 cookie,因此我们算那个实例。所以基本上我想要这样的东西:

Sno Cookie  Count 
 1     A     2 
 2     B     1 
 3     C     0 
 4     D     2 
 5     E     0 

谁能给我背后的逻辑或 python 代码?

请您参考如下方法:

实现此目的的一种方法是首先摆脱连续的 Cookie,然后在使用 duplicated 之前找到 Cookie 出现的位置,最后 groupby cookie 并得到总和:

no_doubles = df[df.Cookie != df.Cookie.shift()] 
 
no_doubles['dups'] = no_doubles.Cookie.duplicated() 
 
no_doubles.groupby('Cookie').dups.sum() 

这给你:

Cookie 
A    2.0 
B    1.0 
C    0.0 
D    2.0 
E    0.0 
Name: dups, dtype: float64