有一个数据框,其中包含布尔值交替的列。我想基于这些布尔更改创建增量值系列。我只想在布尔值不同于先前值时增加。我想做到无循环。
示例,这是数据框:
column
0 True
1 True
2 False
3 False
4 False
5 True
我想要这个:
column inc
0 True 1
1 True 1
2 False 2
3 False 2
4 False 2
5 True 3
答案 0 :(得分:2)
比较移动的列不等于并添加累计和:
df['inc'] = df['column'].ne(df['column'].shift()).cumsum()
print (df)
column inc
0 True 1
1 True 1
2 False 2
3 False 2
4 False 2
5 True 3
详细信息:
print (df['column'].ne(df['column'].shift()))
0 True
1 False
2 True
3 False
4 False
5 True
Name: column, dtype: bool