从另一个时间字符串中减去一个时间字符串

时间:2018-11-13 23:27:08

标签: python pandas

我有一列存储两个不同的时间:

Beginning  |   End
  17:05    |  17:10

我希望能够获得两者之间的差异。

现在,两列都存储为字符串。如何将它们转换为对时间戳聚合友好的数据类型?

1 个答案:

答案 0 :(得分:2)

您可以使用pd.to_datetime,格式为%H:%M,然后将两者相减:

df['Time_Difference'] = pd.to_datetime(df['End'], format='%H:%M') - pd.to_datetime(df['Beginning'], format='%H:%M')

>>> df
  Beginning    End Time_Difference
0     17:05  17:10        00:05:00

或者,如果您实际上要更改BeginningEnd列,则可以执行以下操作:

df[['Beginning', 'End']] = df[['Beginning', 'End']].apply(lambda x: pd.to_datetime(x, format='%H:%M'))
df['Time_Difference'] = df['End'] - df['Beginning']

>>> df
            Beginning                 End Time_Difference
0 1900-01-01 17:05:00 1900-01-01 17:10:00        00:05:00

但是将添加默认日期(1900-01-01