在pandas中的datetime列中随机添加10到40分钟

在pandas中的datetime列中随机添加10到40分钟,pandas,pandas-groupby,Pandas,Pandas Groupby,我有一个如下所示的数据框 start 2010-01-06 09:00:00 2018-01-07 08:00:00 2012-01-08 11:00:00 2016-01-07 08:00:00 2010-02-06 14:00:00 2018-01-07 16:00:00 对于上面的df,我想添加一个名为“finish”的列,通过随机添加10到40分钟的start列和replacement 预期输出: start

我有一个如下所示的数据框

start                      
2010-01-06 09:00:00
2018-01-07 08:00:00
2012-01-08 11:00:00
2016-01-07 08:00:00
2010-02-06 14:00:00
2018-01-07 16:00:00
对于上面的df,我想添加一个名为“finish”的列,通过随机添加10到40分钟的start列和replacement

预期输出:

start                       finish
2010-01-06 09:00:00      2010-01-06 09:20:00
2018-01-07 08:00:00      2018-01-07 08:12:00
2012-01-08 11:00:00      2012-01-08 11:38:00
2016-01-07 08:00:00      2016-01-07 08:15:00
2010-02-06 14:00:00      2010-02-06 14:24:00
2018-01-07 16:00:00      2018-01-07 16:36:00
通过和为介于
10
40
之间的整数创建时间增量:

arr = np.random.randint(10, 40, size=len(df))
df['finish'] = df['start'] + pd.to_timedelta(arr, unit='Min')
print (df)
                start              finish
0 2010-01-06 09:00:00 2010-01-06 09:25:00
1 2018-01-07 08:00:00 2018-01-07 08:30:00
2 2012-01-08 11:00:00 2012-01-08 11:29:00
3 2016-01-07 08:00:00 2016-01-07 08:12:00
4 2010-02-06 14:00:00 2010-02-06 14:31:00
5 2018-01-07 16:00:00 2018-01-07 16:39:00

您可以通过与和结合使用来实现它

from random import randint
df['finish'] = df.start.apply(lambda dt: dt + pd.to_timedelta(randint(10, 40), unit='m'))