Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在熊猫中获得以分钟为单位的时差_Python_Pandas_Time - Fatal编程技术网

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,当我看到时间戳时,我更喜欢将其转换为秒,并跳过整个日期时间。