python - Pandas Dataframe 中的对 boolean 值进行分组

标签 python pandas boolean

我有一个数据框,其中一列中有一系列随机的 True、False:

import pandas as pd
df = pd.DataFrame(data={'A':[True, False, True, True, False, False, True, False, True, False, False]})
df
<表类=“s-表”> <标题> 一个 <正文> 0 正确 1 错误 2 正确 3 正确 4 错误 5 错误 6 正确 7 错误 8 正确 9 错误 10 错误

我想要这个:(不知道如何用简单的语言解释它)

<表类=“s-表”> <标题> 一个 B <正文> 0 正确 1 1 错误 2 2 正确 2 3 正确 2 4 错误 3 5 错误 3 6 正确 3 7 错误 4 8 正确 4 9 错误 5 10 错误 5

我已经尝试使用以下命令,但没有成功: df[A].shift() df[A].diff() df[A].eq()

非常感谢您的帮助。 马蒂亚斯

最佳答案

IIUC,你可以尝试:

df['B'] = (df.A.shift() & ~df.A).cumsum() + 1
# OR df['B'] = (df.A.shift() & ~df.A).cumsum().add(1)

输出:

        A  B
0    True  1
1   False  2
2    True  2
3    True  2
4   False  3
5   False  3
6    True  3
7   False  4
8    True  4
9   False  5
10  False  5

关于python - Pandas Dataframe 中的对 boolean 值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68117289/

相关文章:

Python CSV 阅读器未按我预期的方式读取 CSV 数据

python - 定义对象何时包含在类中

python - 我可以可视化 datasets.Dataset 的内容吗?

python - 如何统计某些条件下的某些数据

python - 使用以数字数组命名的列迭代 DataFrame

javascript - 如何使用 Javascript 将 JSON boolean 值更改为"is"或“否”

python - 如何在python中的图像中沿着不规则形状的对象的边界设置相等的间隔?

python-3.x - 将两列合并为一列并用空行 pandas 分隔它们

java - 更简单的逻辑条件来检查非空要求

python - 在 Python 中使用 Is 运算符检查对象和值