Python pandas DataFrame如何按分钟对timestamp时间戳进行分组统计
Pandas按分钟聚合时间戳的实现方案
首先执行类型转换,确保timestamp列为pandas datetime格式,避免后续操作报错:
import pandas as pd sell['timestamp'] = pd.to_datetime(sell['timestamp'])
方案1:使用resample方法(推荐,针对时间序列做了性能优化)
resample是pandas专为时间序列重采样设计的功能,代码更简洁:
# 将timestamp列设为索引 sell = sell.set_index('timestamp') # 按1分钟频率分组求价格均值 sell_price = sell['price'].resample('1min').mean().reset_index()
如果需要输出的timestamp保留每个分组内第一条记录的毫秒后缀(和你给出的预期输出格式一致),调整写法如下:
sell_price = sell.resample('1min').agg( timestamp = ('timestamp', 'first'), price = ('price', 'mean') ).reset_index(drop=True)
方案2:基于原有groupby写法修改
和你现有按秒分组的逻辑一致,仅需要修改分组键即可:
sell_price = sell.groupby(sell['timestamp'].dt.floor('min'))['price'].mean().reset_index()
说明
dt.floor('min')作用是将时间戳向下对齐到分钟级起始点,所有属于同一分钟的记录会被归为一组- 你可以灵活调整时间粒度:
'S'代表秒、'T'/'min'代表分钟、'H'代表小时,适配不同聚合需求
内容的提问来源于stack exchange,提问作者user11594234
相关产品推荐
相关产品推荐

