带日期限制的总和信息

2024-04-26 17:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想通过ID和给定的值求和,这取决于一系列的日期

我试过这个:

days=(360)
import datetime 
import pandas as pd
group = None
df=pd.read_excel(r'C:\Users\xxxx\Desktop\xxxxx.xlsx')
for i in days:
        D = ((datetime.datetime.now()-datetime.timedelta(days=i)))
        B = D <= df['DATE']
        group = df.groupby('ID')['VALUE'].filter(lambda x: B ).sum()

测向:

DATE       ID  VALUE
2019-01-01 1    10
2019-02-01 2    15
2019-03-01 1    12

但是有一个错误

TypeError: the filter must return a boolean result

即使是B型也是布尔

我需要的结果是:

    ID Value
     1  22
     2  15

Tags: importnoneidpandasdfreaddatetimedate
1条回答
网友
1楼 · 发布于 2024-04-26 17:23:02

我相信您需要在groupby之前通过^{}进行过滤:

 group = df[B].groupby('ID')['VALUE'].sum()

或:

 D = ((datetime.datetime.now()-datetime.timedelta(days=i)))
 B = df.loc[D <= df['DATE'], 'VALUE']
 group = B.groupby(df['ID']).sum()

相关问题 更多 >