将字符串转换为时间 (H:M:S),以便我可以减去它们
Convert strings to time (H:M:S) so I can subtract them
我从 XLS 文件导入了一些数据,该文件有 2 列包含字符串格式的时间信息。示例:04:15:45(表示 4 小时 15 分 45 秒)。
接下来我把它转换成datatime
df['column'] = pd.to_datetime(df['column'], errors='coerce')
我得到了类似 2019-01-09 04:15:45
的东西,这不是我想要的,但没关系(我宁愿使用 %H%M%S 格式)。我对具有相同特征的另一列做同样的事情。
接下来我创建一个新列,其中包含它们之间的差异:
df['new column'] = df['column1'] - df['column2']
然而,当我尝试同时减去两者时,我得到的结果如下:-1 days +23:00:00
而我真正想要的只是 00:16:12
,仅包含 %H%M%S 的差异。
从算法上讲,期望的结果类似于:
(time planned) - (time it actually took) = (difference format 00:18:12)
您可以将输出转换为以秒为单位的差异。
df = pd.DataFrame({'t1': ['1:13:14', '2:34:56', '2:44:32'], 't2': ['1:15:00', '2:37:00', '3:00:00']})
df.t1 = pd.to_timedelta(df.t1)
df.t2 = pd.to_timedelta(df.t2)
df
t1 t2
0 1:13:14 1:15:00
1 2:34:56 2:37:00
2 2:44:32 3:00:00
df['t_diff'] = (df.t1 - df.t2).dt.total_seconds()
t1 t2 t_diff
0 01:13:14 01:15:00 -106.0
1 02:34:56 02:37:00 -124.0
2 02:44:32 03:00:00 -928.0
我从 XLS 文件导入了一些数据,该文件有 2 列包含字符串格式的时间信息。示例:04:15:45(表示 4 小时 15 分 45 秒)。
接下来我把它转换成datatime
df['column'] = pd.to_datetime(df['column'], errors='coerce')
我得到了类似 2019-01-09 04:15:45
的东西,这不是我想要的,但没关系(我宁愿使用 %H%M%S 格式)。我对具有相同特征的另一列做同样的事情。
接下来我创建一个新列,其中包含它们之间的差异:
df['new column'] = df['column1'] - df['column2']
然而,当我尝试同时减去两者时,我得到的结果如下:-1 days +23:00:00
而我真正想要的只是 00:16:12
,仅包含 %H%M%S 的差异。
从算法上讲,期望的结果类似于:
(time planned) - (time it actually took) = (difference format 00:18:12)
您可以将输出转换为以秒为单位的差异。
df = pd.DataFrame({'t1': ['1:13:14', '2:34:56', '2:44:32'], 't2': ['1:15:00', '2:37:00', '3:00:00']})
df.t1 = pd.to_timedelta(df.t1)
df.t2 = pd.to_timedelta(df.t2)
df
t1 t2
0 1:13:14 1:15:00
1 2:34:56 2:37:00
2 2:44:32 3:00:00
df['t_diff'] = (df.t1 - df.t2).dt.total_seconds()
t1 t2 t_diff
0 01:13:14 01:15:00 -106.0
1 02:34:56 02:37:00 -124.0
2 02:44:32 03:00:00 -928.0