python - 如何创建一个列来跟踪另一列中的值在 pandas 中的该行之前出现的次数

标签 python pandas

例如,假设这是我的数据框:

row    object_id
1      1024
2      1024
3      1024
4      1032
5      1032
6      1048
...    ...

我想创建一个专栏occurence_num如下:

row    object_id     occurence_num
1      1024          1         # starts count
2      1024          2 
3      1024          3
4      1032          1         # restarts count since object_id has changed
5      1032          2 
6      1048          1         # restarts count since object_id has changed
...    ...           ...

在 SQL 中执行此操作的方法也会有所帮助,但我希望能够使用 pandas 来执行此操作。

注意:我找到了一种在 Excel 中执行此操作的方法 here .

最佳答案

您可以使用 cum.count():

df['occurence_num']=df.groupby('object_id').cumcount()+1

>>>print(df)

   row  object_id  occurence_num
    1       1024              1
    2       1024              2
    3       1024              3
    4       1032              1
    5       1032              2
    6       1048              1

关于python - 如何创建一个列来跟踪另一列中的值在 pandas 中的该行之前出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68447898/

相关文章:

python - 从 python panda 数据框中删除行

python - 将 virtualenvwrapper 导入 Powershell 时出错

python - 映射两个数据框的列并从列表中添加值

Python - 判断pandas数据框中是否存在非连续日期

python - 如何在 Python egg 中分发/访问数据文件?

python - 在 Python 中,内置常量 True 和 False 是唯一的吗?

python - python 有类似 C++ 的 using 关键字吗?

python - pandas,组合多个数据帧

python - 取 pandas 中两个时间戳范围条件的交集