Добавить значение на основе условия в pandas - PullRequest
1 голос
/ 02 марта 2020

Если текущее значение> Предыдущее значение (value.shift (-1)), то добавьте значение к df [''].

Начните снизу вверх. Пожалуйста, посмотрите мой ожидаемый фрейм данных, чтобы увидеть, что я пытаюсь выполнить sh

1 Ответ

1 голос
/ 02 марта 2020

Мы можем DataFrame.sort_values с groupby.cumsum проверить состояние с groupby.diff.

df2=df.sort_values('timestamp')
blocks=df2.groupby('id')['value'].diff(-1).ge(0).cumsum()
df['finalvalue']=df2['value'].mask(blocks.ne(0), 
                                   df2.groupby(['id',blocks])['value'].cumsum())
print(df)

            timestamp       id  value  finalvalue
0 2020-02-16 03:05:57  device1   1000        4100
1 2020-02-16 02:05:33  device1    900        3100
2 2020-02-16 01:05:08  device1    700        2200
3 2020-02-16 00:04:44  device1    300        1500
4 2020-02-15 23:04:19  device1   1200        1200
5 2020-02-15 22:03:55  device1    800         800
6 2020-02-15 21:03:29  device1    400         400
7 2020-02-15 20:03:04  device1    200         200
8 2020-02-15 19:02:39  device1    100         100
9 2020-02-15 18:02:14  device1      0           0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...