簡體   English   中英

重復減去字符串和datetime.time

[英]Subtracting string and datetime.time repeatedly

我有一個熊貓數據框,其中有一個'時間'列,其中包含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))

所以我需要一個更干凈的解決方案,而不是在此處提供的python中減去兩次,因為它正在搜索“時間”列中的所有行並從固定值中減去。

您可以使用.dt訪問器將其轉換為datetime ,從timedelta減去並返回僅time序列。

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

例:

df = pd.DataFrame({'t':[time(2),time(8)]})

    t
0   02:00:00
1   08:00:00

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

0    00:58:59
1    06:58:59
Name: t, dtype: object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM