Инкрементальные значения панд при булевых изменениях - PullRequest
0 голосов
/ 22 февраля 2019

Существует фрейм данных, содержащий столбец, в котором чередуются логические значения.Я хочу создать серию добавочных значений на основе этих логических изменений.Я хочу увеличивать только тогда, когда логическое значение отличается от предыдущего значения.Я хочу сделать это без цикла.

Пример, вот кадр данных:

   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

1 Ответ

0 голосов
/ 22 февраля 2019

Сравнить смещенный столбец по неравенству и добавить кумулятивную сумму:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...