我有这样的数据帧:

point switch_on
A True
B True
C True
A False
D False
N True
O False
O False
S False

我想添加另一个列,它将在切换之前确定包含相同布尔值的行组.就像这样:

point switch_on group
A True 1
B True 1
C True 1
A False 2
D False 2
N True 3
O False 4
O False 4
S False 4

推荐答案

在每次发生变化时进行识别:

  • 这是指当前值df.switch_on不等于先前的值df.switch_on.shift().

然后拿cumsum:

  • True被解释为1,False被解释为0.
df['group'] = df.switch_on.ne(df.switch_on.shift()).cumsum()
print(df)

输出:

  point  switch_on  group
0     A       True      1
1     B       True      1
2     C       True      1
3     A      False      2
4     D      False      2
5     N       True      3
6     O      False      4
7     O      False      4
8     S      False      4

Python相关问答推荐

为什么tkinter框架没有被隐藏?

删除最后一个pip安装的包

处理(潜在)不断增长的任务队列的并行/并行方法

有没有一种方法可以从python的pussompy比较结果中提取文本?

计算天数

在嵌套span下的span中擦除信息

Polars asof在下一个可用日期加入

在Python中使用if else或使用regex将二进制数据如111转换为001""

如何使用使用来自其他列的值的公式更新一个rabrame列?

如何获取Python synsets列表的第一个内容?

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

语法错误:文档. evaluate:表达式不是合法表达式

mdates定位器在图表中显示不存在的时间间隔

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

数据框,如果值在范围内,则获取范围和

如何将返回引用的函数与pybind11绑定?

在任何要保留的字段中添加引号的文件,就像在Pandas 中一样

如何在Python中创建仅包含完整天数的月份的列表

在一个数据帧中,我如何才能发现每个行号是否出现在一列列表中?

我怎样才能让深度测试在OpenGL中使用Python和PyGame呢?