【发布时间】:2021-09-11 06:10:49
【问题描述】:
我有一个如下所示的 Pandas 数据框,其中 A 列是一系列字符串,B 列中的值是真/假,具体取决于 A 列的值是否与上一行。
A B
1 False
1 True
1b False
1b True
1b True
1 False
我想添加一个新列 C,它为所有 连续重复 条目分配相同的值(可以是任何值),但该值必须不同于分配给其他条目的值连续重复条目的组。例如:
A B C
1 False 1
1 True 1
1b False 2
1b True 2
1b True 2
1 False 3
关于如何以有效的方式解决这个问题有什么想法吗?
【问题讨论】:
-
我认为
cumsum(!df["B"])会让你非常接近 -
这行得通,我将 B 列更改为将 False 映射为 1,将 True 映射为 0。之后我运行 df["C"] = df["B"].cumsum() 来获取所需的输出。谢谢!
标签: python pandas numpy boolean shift