сумма панд группы элементов с определенной относительной разностью - PullRequest
0 голосов
/ 26 апреля 2018
time  | value
1         4
2         5
20        7
------------
50        8
55        10
74        12
------------
100       1
105       21
120       0

Как получить сумму значений для каждой группы элементов: так, чтобы группа имела относительную разницу между каждым элементом и следующим, которая составляет менее 20

1 Ответ

0 голосов
/ 26 апреля 2018

Я считаю, что нужно diff с ge для >=20 и cumsum для Series в качестве аргумента для groupby и совокупность sum:

df = df.groupby(df['time'].diff().ge(20).cumsum())['value'].sum()
print (df)
time
0    16
1    30
2    22
Name: value, dtype: int64

Деталь

print (df['time'].diff().ge(20).cumsum())
0    0
1    0
2    0
3    1
4    1
5    1
6    2
7    2
8    2
Name: time, dtype: int32
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...