当布尔值改变时,Pandas 增量值

Dev*_*cie 5 python numpy pandas

有一个数据框,其中包含布尔值交替的列。我想根据这些布尔变化创建增量值系列。我只想在布尔值与之前的值不同时增加。我想在没有循环的情况下执行此操作。

例如,这是数据框:

   column
0    True
1    True
2   False
3   False
4   False
5    True
Run Code Online (Sandbox Code Playgroud)

我想得到这个:

 column  inc
0    True    1
1    True    1
2   False    2
3   False    2
4   False    2
5    True    3
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 9

比较移位列不等于并添加累积和:

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
Run Code Online (Sandbox Code Playgroud)

细节

print (df['column'].ne(df['column'].shift()))
0     True
1    False
2     True
3    False
4    False
5     True
Name: column, dtype: bool
Run Code Online (Sandbox Code Playgroud)