我有一个Pandas的数据框,看起来像这样:
Ac |Type |Id |Date |Value |Pe |
---------------------------------------------------
Debt |Other |DE |2017-12-31 |5 |12M |
Debt |Other |DE |2018-03-31 |4 |12M |
Debt |Other |DE |2018-06-30 |3 |12M |
Debt |Other |DE |2018-09-30 |2 |12M |
Debt |Other |DE |2018-12-31 |5 |12M |
Debt |Other |DE |2019-03-31 |6 |12M |
Debt |Other |DE |2019-06-30 |1 |12M |
Debt |Other |DE |2019-09-30 |5 |12M |
Debt |Other |DE |2019-12-31 |2 |12M |
Debt |Other |DE |2020-03-31 |3 |12M |
Debt |Other |DE |2019-06-30 |4 |12M |
并且,按年份分组,我需要添加列'Value'中与该年份相关的4个先前值,如下所示:
Ac |Type |Id |Date |Value |Pe |
---------------------------------------------------
Debt |Other |DE |2017-12-31 |5 |12M |
Debt |Other |DE |2018-12-31 |4+3+2+5 |12M |
Debt |Other |DE |2019-12-31 |6+1+5+2 |12M |
Debt |Other |DE |2020-09-30 |5+2+3+4 |12M |
具备以下条件:
1.如果由于没有3行具有先前日期而无法对3个先前日期求和,则保留已经存在的日期,如示例中日期为2017 - 12 - 31的行的情况。
1.如果前面的行不都在同一年,则添加这些行的值列,并在"日期"列中保留最后一个日期。与示例中日期为2020 - 09 - 30的行的情况相同
你们能帮帮我吗?
1条答案
按热度按时间vhmi4jdf1#
对于每行,将最后 n = 4个日期的
Value
相加然后,仅保留每年的最后一行