Python Pandas条件聚合问题:按时间区间、价格阈值求和交易量
实现代码
你需要保证过滤用的时间边界和原数据的时区保持一致,避免出现匹配错误,具体实现如下:
import pandas as pd # 1. 统计指定时间区间内的volume总和 # 构造与原数据时区一致的时间边界 start = pd.Timestamp("2021-09-29 04:15:00", tz="America/New_York") end = pd.Timestamp("2021-09-29 06:15:00", tz="America/New_York") time_range_sum = df[(df["datetime"] > start) & (df["datetime"] < end)]["volume"].sum() # 2. 统计price大于20的volume总和 price_filter_sum = df[df["price"] > 20]["volume"].sum()
结果说明
time_range_sum计算结果为1500:匹配到2021-09-29 04:30、05:30、06:00三条记录,对应volume求和为300+700+500=1500,符合预期。price_filter_sum计算结果为1300:匹配到price=22、price=29两条记录,对应volume求和为900+400=1300,符合预期。
内容的提问来源于stack exchange,提问作者GinSnipe
相关产品推荐
相关产品推荐

