我有以下专栏
Time
2:00
00:13
1:00
00:24
以对象格式(字符串)。这个时间是指我需要从开始使用的时间开始的小时和分钟:8:00
(它可能会更改;在本示例中为8:00)。
由于Time
列中的时间是指hours/minutes
之前的时间,所以我希望的是
Time
6:00
07:47
7:00
07:36
计算为时间差(例如8:00 - 2:00
)。
但是,我在执行此计算和将结果转换为日期时间时遇到困难(仅保留小时和分钟)。
我希望你能帮助我。
答案 0 :(得分:2)
由于Time
列仅包含Hour:Minute
,因此我建议使用timedelta
而不是datetime
:
df['Time'] = pd.to_timedelta(df.Time+':00')
df['Start_Time'] = pd.to_timedelta('8:00:00') - df['Time']
输出:
Time Start_Time
0 02:00:00 06:00:00
1 00:13:00 07:47:00
2 01:00:00 07:00:00
3 00:24:00 07:36:00
答案 1 :(得分:0)
您可以使用pd.to_datetime
进行操作。
ref = pd.to_datetime('08:00') #here define the hour of reference
s = ref-pd.to_datetime(df['Time'])
print (s)
0 06:00:00
1 07:47:00
2 07:00:00
3 07:36:00
Name: Time, dtype: timedelta64[ns]
这将返回一个序列,例如可以将其更改为带有s.to_frame()
的数据框