给定一个像这样的 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()
这将仅计算元素不等于前一个元素的代码中的值。
关于python - Pandas DataFrame 在列中每次出现后计算每个元素的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58076843/