熊猫时差(从字符串格式到日期时间)

时间:2020-06-01 23:43:57

标签: python pandas

我有以下专栏

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)。 但是,我在执行此计算和将结果转换为日期时间时遇到困难(仅保留小时和分钟)。 我希望你能帮助我。

2 个答案:

答案 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()的数据框