如何在Python中将第一行的结束时间作为第二行的开始时间

时间:2019-02-19 09:34:51

标签: python pandas datetime

如何将第一行的结束时间作为第二行的开始时间(我打算在几秒内向每行的开始时间添加一些值,并且同一行的结束时间必须是下一行的开始时间行)。

例如,

start-time|time_to_add|endtime

10:00:00  |30 secs   |10:00:30

10:00:30  | 15 secs  | 10:00:45

10:00:45  | 10 secs  | 10:00:55

任何帮助将不胜感激。

谢谢

编辑

starttime  | val_to_add |  endtime

10:30:00   | 30     |   10:30:00 + 0:0:30

10:30:00 + 0:0:30  | 30   | 10:30:00 + 0:0:30 + 0:0:30

2 个答案:

答案 0 :(得分:1)

使用:

"names<-"(c(1,2,3), namevec)
name1 name2 name3 
    1     2     3

setNames(c(1,2,3), namevec)
name1 name2 name3 
    1     2     3

structure(c(1,2,3), .Names = namevec)
name1 name2 name3 
    1     2     3 

答案 1 :(得分:0)

如果time_to_add是值列表,这是一个小例子。

import pandas as pd
import numpy as np

df = pd.DataFrame()
initial_start_time = pd.to_timedelta('10:00:00')
time_to_add = ['0:00:30', '0:00:15', '0:00:15', '0:00:30', '0:00:20']
time_to_add = [pd.to_timedelta(x) for x in time_to_add]

df['time_to_add'] = time_to_add
df['end_time'] = [initial_start_time + x for x in np.cumsum(time_to_add)]
df['start_time'] = [initial_start_time] + list(df['end_time'][:-1])

df = df[['start_time', 'time_to_add', 'end_time']]

time_to_add仅是您的时间间隔。 end_time列将间隔时间添加到初始开始时间,而列start_time则使用结束时间并将其移动一行。 最后一行仅用于重新排列列。

希望这对您有用。