计算的timedelta列以熊猫为单位

时间:2019-05-28 12:53:57

标签: python pandas time

我在pandas df中有一些数据,例如:

time                            delay 
2017/06/14 10:02:10.144927 PM   15 

时间显然是时间戳,延迟是秒。 df.dtypes分别是datetime64[ns]int。我想添加一列,其中包含原始时间的时间戳记以及经过的秒数,例如:

time                            delay   end_time
2017/06/14 10:02:10.144927 PM   15      2017/06/14 10:02:25.144927 PM

我正在尝试

df["end_time"] = df.time.add(datetime.timedelta(seconds = df.time))

但是我遇到错误TypeError: unsupported type for timedelta seconds component: Series。我该怎么做?我需要一个lambda吗?

1 个答案:

答案 0 :(得分:0)

使用to_timedelta将整数列转换为时间增量:

df["end_time"] = pd.to_datetime(df['time']).add(pd.to_timedelta(df.delay, unit='s'))
print (df)
                            time  delay                   end_time
0  2017/06/14 10:02:10.144927 PM     15 2017-06-14 22:02:25.144927

如果需要在输出中使用相同格式,请添加Series.dt.strftime

df["end_time"] = (pd.to_datetime(df['time'])
                   .add(pd.to_timedelta(df.delay, unit='s'))
                   .dt.strftime('%Y/%m/%d %H:%M:%S.%f %p'))
print (df)
                            time  delay                       end_time
0  2017/06/14 10:02:10.144927 PM     15  2017/06/14 22:02:25.144927 PM