Skip to main content
 首页 » 编程设计

python之如何将混合时间和日期时间值的列转换为日期时间(或时间)

2025年05月04日14thcjp

这是列

Time            CloseTime 
17  09:30:00  2019-04-22 09:32:00 
27  09:30:00  2019-05-13 09:32:00 
36  09:30:00             15:15:00 
37  09:30:00             15:15:00 
44  09:30:00  2019-05-24 09:32:00 
76  09:30:00  2019-06-07 09:32:00 
92  09:30:00  2019-06-17 09:32:00 

目前,两列的 dtype 都是 O。

我想将两列都转换为 time 以便我可以比较(减去)它们。

我试过:

df['CloseTime'] = pd.to_datetime(df['CloseTime']) 

请您参考如下方法:

关闭,您需要将两列都转换为 timedeltas,第二列删除日期,以便稍后处理:

df['Time'] = pd.to_timedelta(df['Time']. astype(str)) 
df['CloseTime'] = pd.to_timedelta(df['CloseTime'].str.split().str[-1]) 
 
#e.g. subtract columns     
df['diff'] = df['CloseTime'].sub(df['Time']) 
print (df) 
       Time CloseTime     diff 
17 09:30:00  09:32:00 00:02:00 
27 09:30:00  09:32:00 00:02:00 
36 09:30:00  15:15:00 05:45:00 
37 09:30:00  15:15:00 05:45:00 
44 09:30:00  09:32:00 00:02:00 
76 09:30:00  09:32:00 00:02:00 
92 09:30:00  09:32:00 00:02:00