我只想根据日期范围对ID和给定值求和总数
我试过这个:
days=(360)
import datetime
import pandas as pd
group = None
df=pd.read_excel(r'C:UsersxxxxDesktopxxxxx.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()
DF:
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
我相信
您需要在groupby
之前按boolean indexing
过滤:
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()