Сумма количества за несколько дней до дня интереса - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть данные о размере наводнения (от 0 [без наводнения] до 3 [большое наводнение]) и количестве осадков в суточном масштабе времени. Это фрагмент данных:

     date       Size    ppt
2017-09-13      0.0     0.000000
2017-09-14      0.0     34.709998
2017-09-15      0.0     0.000000
2017-09-16      0.0     0.000000
2017-09-17      0.0     0.000000
2017-09-18      0.0     0.600000
2017-09-19      3.0     157.439998

Меня интересует, сколько осадков выпадает за 'X' количество дней до наводнения, а не только количество осадков, выпадающих в день наводнения. Например, используя данные выше, за семь дней до наводнения 2017-09-19 гг. Упало ~ 193 мм, а за предшествующие три дня упало ~ 158 мм. Тем не менее, я понятия не имею, как это кодировать. Может ли кто-нибудь там помочь?

Спасибо:)

1 Ответ

0 голосов
/ 11 сентября 2018

Полагаю, вас интересуют только те ряды, где было наводнение, т.е. Size! = 0. Вы можете отфильтровать эти строки после применения кода ниже.

С учетом DataFrame rain следующим образом:

     date       Size    ppt
2017-09-13      0.0     0.000000
2017-09-14      0.0     34.709998
2017-09-15      0.0     0.000000
2017-09-16      0.0     0.000000
2017-09-17      0.0     0.000000
2017-09-18      0.0     0.600000
2017-09-19      3.0     157.439998


## 7-day cumulative precipitation
rain['ppt_7day'] = rain['ppt'].rolling(7).sum()
## 3-day cumulative precipitation
rain['ppt_3day'] = rain['ppt'].rolling(3).sum()

Выход:

          date size     ppt    ppt_7day    ppt_3day
0  2017-09-13     0       0         NaN         NaN
1   2017-09-14    0   34.71         NaN         NaN
2   2017-09-15    0       0         NaN   34.709998
3   2017-09-16    0       0         NaN   34.709998
4   2017-09-17    0       0         NaN    0.000000
5   2017-09-18    0     0.6         NaN    0.600000
6   2017-09-19    3  157.43  192.739998  158.030000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...