Skip to main content
 首页 » 编程设计

python之Pandas DataFrame 在列中每次出现后计算每个元素的出现次数

2025年05月04日15me-sa

给定一个像这样的 pandas 数据框

pd.DataFrame(data={"codes": [1,1,1,0,0,1,1,0,0,1,2,2]}) 
 
time    codes 
0       1 
1       1 
2       1 
3       0 
4       0 
5       1 
6       1 
7       0 
8       0 
9       1 
10      2 
11      2 

我想计算 codes 中的每个元素在每次新出现后出现的次数。请注意,我不想为每个元素计算 .value_counts()。例如,对于 codes 值 1 出现了 3 次,值 0 出现了 2 次,值 2 出现了1次。该任务的类比是计算用户 session 数。

预期输出:

codes   count_occurences 
1       3 
0       2 
2       1 

请您参考如下方法:

用 pandas 你可以做类似的事情

df.codes.loc[df.codes!=df.codes.shift()].value_counts() 

这将仅计算元素不等于前一个元素的代码中的值。