Python 如何将具有一个较大时间增量的熊猫记录拆分为具有较小时间增量的多个记录?
我有一个包含3列的数据框:时隙的timedelta(duration)、时隙开始的datetime和创建记录时通知的datetime。时间增量都是15分钟的乘数:Python 如何将具有一个较大时间增量的熊猫记录拆分为具有较小时间增量的多个记录?,python,pandas,Python,Pandas,我有一个包含3列的数据框:时隙的timedelta(duration)、时隙开始的datetime和创建记录时通知的datetime。时间增量都是15分钟的乘数: Index duration slot_start creation_time 1. 15 minutes some datetime 1 some datetime 3 2. 45 minutes some datetime 2 some datetime 4
Index duration slot_start creation_time
1. 15 minutes some datetime 1 some datetime 3
2. 45 minutes some datetime 2 some datetime 4
我想要实现的是:
Index duration slot_start creation_time
1. 15 minutes some datetime 1 some datetime 3
2. 15 minutes some datetime 2 some datetime 4
3. 15 minutes some datetime 2 + 15 minutes some datetime 4
4. 15 minutes some datetime 2 + 30 minutes some datetime 4
是否有用于此类操作的工具?如何在非常大的数据帧上轻松高效地实现此功能?尝试以下方法:
unit = pd.Timedelta(minutes=15)
s = pd.to_timedelta(df['duration']).div(unit) \
.apply(lambda n: unit * np.arange(n)) \
.rename('offset') \
.explode()
df = df.join(s)
df['slot_start'] = df['slot_start'] + df['offset']
这是一个很好的主意,但它不会在插槽_开始时增加时间差,这是至关重要的。很抱歉,我错过了第二个要求。更新我的答案精彩的答案!一个重要的注意事项:此解决方案需要高于0.25的版本。在早期版本上,爆炸将导致错误。