重复减去字符串和datetime.time

时间:2018-07-09 18:52:54

标签: python pandas numpy

我有一个熊猫数据框,其中有一个“时间”列,其中包含诸如13:50:00(它是字符串类型)的行。现在我有一个时间,其格式和值为21:21:21。我想要减去两者。

现在我做了abs(datetime.strptime(a,'%H:%M:%S')。time()-recording_start_time)) 仍然给我错误

print(abs(datetime.strptime(a, '%H:%M:%S').time()- recording_start_time))
TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

我的代码看起来像-

 min_time_diff = abs(df3.loc[cond & cond2 ]['Time'].apply(lambda x: datetime.strptime(x, '%H:%M:%S').time()- recording_start_time))

因此,我需要一种比这里提供的subtract two times in python更干净的解决方案,因为它正在搜索“时间”列中的所有行并从固定值中减去。

1 个答案:

答案 0 :(得分:2)

您可以使用 reverse=(False,True)) TypeError: an integer is required (got type tuple) 访问器转换为datetime,从timedelta中减去,然后返回到仅限time的系列

.dt

示例:

delta = datetime.timedelta(hours=21, minutes=21, seconds=21)
diff = pd.to_datetime(df.t, format="%H:%M:%S") - delta
>>> diff.dt.time