Исключение самого последнего дня из скользящей суммы

У меня есть кадр данных pandas, показанный ниже, с данными об осадках. «Pcp» — это сумма за один день, которую я затем использовал для расчета скользящих кумулятивных сумм осадков за другие периоды времени, предшествующие интересующему дню (от 3 до 28 дней), используя:

df['Pcp_3day'] = df['Pcp'].rolling(3).sum()

Чего я хотел бы добиться, так это скользящего итога за n дней до интересующей даты, но не включая ее. Другими словами, на данный момент скользящие итоги формируются с количеством осадков за дни 0, -1, -2, тогда как я хотел бы исключить день 0 (интересующий день) и иметь скользящее количество дней -1. , -2, -3, то есть три дня до него.

Я не уверен, что эта аналогия очень ясна, но если есть какой-либо совет, я был бы очень признателен.

Спасибо

                Pcp     Pcp_3day    Pcp_7day    Pcp_10day   Pcp_14day   Pcp_21day   Pcp_28day
date        
2017-12-04      8.382   19.304      21.082      40.132      40.132      42.418      71.374
2017-12-05      12.192  20.574      33.020      42.164      52.324      52.578      81.534
2017-12-06      1.016   21.590      33.020      34.290      53.340      53.594      82.550
2017-12-07      12.700  25.908      45.466      46.990      66.040      66.040      95
2017-12-08      5.080   18.796      50.292      51.816      71.120      71.120      88.900

person SHV_la    schedule 12.11.2018    source источник
comment
Это поможет другим, если вы предоставите структуру данных явно. В данном случае это пандас DataFrame.   -  person eaydin    schedule 12.11.2018
comment
@eaydin отметил и отредактировал, спасибо.   -  person SHV_la    schedule 12.11.2018


Ответы (1)


Попробуй это:

df['Pcp_3day'] = df['Pcp'].shift().rolling(3).sum()
person John Zwinck    schedule 12.11.2018
comment
Вот почему я люблю stackoverflow, спасибо, @John - person SHV_la; 12.11.2018