连续2行之间的时差

时间:2019-08-13 06:04:52

标签: python pandas

我有一个数据集,其中包含“员工姓名”,“日期:开始阅读的日期”,“时间:开始阅读的时间”。我想计算连续行之间的时间差。

我要面对的问题是,我想在特定的一天中花费时间。我不想在两个不同日期的读数之间进行区别。

我已经尝试过了,但是它正在计算两个不同日期之间的时间差。

dataFrame['Time_diff'] = pd.to_timedelta(dataFrame['Time'].astype(str)).diff(+1).dt.total_seconds()

1 个答案:

答案 0 :(得分:0)

使用DataFrameGroupBy.diff

print (dataFrame)
         date      Time
0  2019-06-08  12:30:01
1  2019-06-08  13:30:01
2  2019-06-09  14:30:01
3  2019-06-09  16:30:01

dataFrame['Time'] = pd.to_timedelta(dataFrame['Time'].astype(str))

#if necessary
#dataFrame = dataFrame.sort_values(['date','Time'])

dataFrame['Time_diff'] = dataFrame.groupby('date')['Time'].diff().dt.total_seconds()
print (dataFrame)
         date     Time  Time_diff
0  2019-06-08 12:30:01        NaN
1  2019-06-08 13:30:01     3600.0
2  2019-06-09 14:30:01        NaN
3  2019-06-09 16:30:01     7200.0