我有以下列
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
(。 但是,我在进行此计算并在日期时间中转换结果(仅保留小时和分钟(时遇到困难。 我希望你能帮助我。
由于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
您可以使用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()
的数据帧