Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将具有一个较大时间增量的熊猫记录拆分为具有较小时间增量的多个记录?_Python_Pandas - Fatal编程技术网

Python 如何将具有一个较大时间增量的熊猫记录拆分为具有较小时间增量的多个记录?

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

我有一个包含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.       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的版本。在早期版本上,爆炸将导致错误。