我有一列存储两个不同的时间:
Beginning | End
17:05 | 17:10
我希望能够获得两者之间的差异。
现在,两列都存储为字符串。如何将它们转换为对时间戳聚合友好的数据类型?
答案 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
或者,如果您实际上要更改Beginning
和End
列,则可以执行以下操作:
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
)