Python 如何在熊猫中获得以分钟为单位的时差
我在熊猫中有以下数据帧Python 如何在熊猫中获得以分钟为单位的时差,python,pandas,time,Python,Pandas,Time,我在熊猫中有以下数据帧 code start_time end_time 0 13:00:09 13:30:09 1 14:23:33 15:23:23 2 11:30:00 12:30:00 df['time_diff'] = pd.Timestamp(df['start_time']) - pd.Timestamp(df['end_time']) 开始时间和结束时间
code start_time end_time
0 13:00:09 13:30:09
1 14:23:33 15:23:23
2 11:30:00 12:30:00
df['time_diff'] = pd.Timestamp(df['start_time']) - pd.Timestamp(df['end_time'])
开始时间和结束时间属于对象类型
我想在几分钟内得到这两列的差。我在做熊猫的跟随
code start_time end_time
0 13:00:09 13:30:09
1 14:23:33 15:23:23
2 11:30:00 12:30:00
df['time_diff'] = pd.Timestamp(df['start_time']) - pd.Timestamp(df['end_time'])
将列转换为datetimes by或TimeDelta by、减法、将输出TimeDelta转换为并除以60: 如果将结束时间与开始时间交换:
df['time_diff'] = end_time.sub(start_time).dt.total_seconds().div(60)
print (df)
code start_time end_time time_diff
0 0 13:00:09 13:30:09 30.000000
1 1 14:23:33 15:23:23 59.833333
2 2 11:30:00 12:30:00 60.000000
样本:
评论中的IDE,谢谢@Anton vBR:
start_time = pd.to_timedelta(df['start_time'].astype(str)).dt.total_seconds()
end_time = pd.to_timedelta(df['end_time'].astype(str)).dt.total_seconds()
df['time_diff'] = end_time.sub(start_time).div(60)
print (df)
code start_time end_time time_diff
0 0 13:00:09 13:30:09 30.000000
1 1 14:23:33 15:23:23 59.833333
2 2 11:30:00 12:30:00 60.000000
不是用开始时间减去结束时间?应该对你有帮助。它给我以下错误是不可转换的datetime@Neil-然后有必要通过.astypestrOops将其转换为字符串,因为它们都是您意外粘贴两次的相同内容。Sorry@coldspeed-没问题。Tbh,当我看到时间戳时,我更喜欢将其转换为秒,并跳过整个日期时间。