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

标签 python pandas

给定一个像这样的 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()。例如,对于 codes1 出现了 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/

相关文章:

python - os.stat(path).st_mtime 实际上如何获取文件修改时间?

python - 对数据框中的值执行函数并替换

python - Pandas :替换缺失的数据框值/条件计算:fillna

python - 如何从 pandas 数据框转换为字典

python - 如何根据每组的条件屏蔽列中的值

python - 在 Python 中找到第二和第三高的值

python - 如何从 numpy 列表中剪切到最接近的值?

python - 如何在 django admin 中自定义多对多内联模型

python - 如何在 Python 中将数字列表转换为 jsonarray

python - 两个形状相同的复杂多维数组的条件检查