【发布时间】:2021-06-23 05:28:18
【问题描述】:
我有两列 start_time 和 execution_time,我需要使用这两列并创建一个新列 end_time,这是我的 start_time 和 execution_time 的总和:
start_time execution_time end_time
0 13-05-2013 04:04 00:24:48 13-05-2013 4:28:48
1 13-05-2013 04:44 00:09:23 13-05-2013 4:53:23
2 13-05-2013 23:24 00:06:51 13-05-2013 23:30:51
3 22-05-2013 16:31 00:06:05 22-05-2013 16:37:05
4 22-05-2013 20:55 00:06:51 22-05-2013 21:01:51
这里的一个问题是,如果分钟超过 60,它应该被追加到下一个小时,如最后一条记录所示。如果小时超过 24,它应该附加到第二天。
请帮助我获得结果。提前致谢
【问题讨论】:
-
使用
df['end_time']= pd.to_datetime(df.start_time) + pd.to_timedelta(df.execution_time.astype(str)) -
还有here
-
我试过这个但我得到 ValueError: invalid literal for int() with base 10: '' 并且错误出现在 pd.to_timedelta(df.execution_time.astype(str))
-
你可以试试
df['end_time']= pd.to_datetime(df.start_time) + pd.to_timedelta(df.execution_time.astype(str), errors='coerce').fillna(pd.Timedelta(0))吗? -
是的,这行得通。非常感谢@jezrael。但是为什么我会更早地收到 ValueError 呢?这是否意味着我有南的?