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 的类型是 bool
我需要的结果是:
ID Value
1 22
2 15
解决方案
boolean indexing
我相信您需要通过before过滤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()
推荐阅读
- python - 如何整合销售人员和 Django?
- batch-file - for循环内批处理脚本中的子字符串计算
- xcode - Xcode:如何将“新二进制文件”上传到 App Store Connect?
- php - 使用 laravel 上传多个文件
- css - 如何忽略容器的宽度,向右溢出,而不破坏页面?
- python - 屏幕上的 Python Turtle 中心龟
- regex - 正则表达式排除带有点和 0 位的数字
- javascript - 这些异步方法声明之间有什么区别?
- reactjs - 使用 React CDN 时如何使用 material-ui 的 Autocomplete 组件
- kubernetes - 带有边车日志容器的 Cronjob 没有退出代码