我有一个熊猫数据框,其中有一个“时间”列,其中包含诸如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更干净的解决方案,因为它正在搜索“时间”列中的所有行并从固定值中减去。
答案 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