【问题标题】:Sum information with date restriction有日期限制的汇总信息
【发布时间】:2019-09-10 11:04:05
【问题描述】:

我只想按 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()

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的类型是bool

我需要的结果是:

    ID Value
     1  22
     2  15

【问题讨论】:

    标签: python pandas filter group-by


    【解决方案1】:

    我相信您需要在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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      相关资源
      最近更新 更多