pandas dataframe按分组生成30分钟间隔递增时间序列的实现方案
实现方法
核心逻辑是利用分组序号乘以时间间隔,叠加到固定起始时间上,代码如下:
import pandas as pd # 构造示例数据(你已有df的话可以跳过这部分) df = pd.DataFrame({ 'alpha': ['a', 'a', 'a', 'b', 'b'], 'value': [5, 8, 4, 2, 1] }) # 定义起始时间 start_time = pd.to_datetime("2021-01-01 23:30:00") # 生成分组时间序列 df["serial"] = start_time + df.groupby("alpha").cumcount() * pd.Timedelta(minutes=30)
逻辑说明
groupby("alpha").cumcount()会返回每个分组内从0开始的递增整数序号,对应每个分组内需要偏移的时间单位数pd.Timedelta(minutes=30)定义了每次递增的时间间隔,可根据需求修改参数(比如hours=1代表每间隔1小时递增)- 起始时间加上总偏移时长,就得到了每个分组独立递增的时间序列
内容的提问来源于stack exchange,提问作者Deoj
相关产品推荐
相关产品推荐

