简体   繁体   English

如何计算午夜时列中的值之间的时间差?

[英]how to calculate the time difference between the values in column over midnight?

I have a column of timestamp values for each hour for 25 days.我在 25 天内每个小时都有一列时间戳值。 I want to take the time difference between them.我想拿他们之间的时间差。 I have tried the code in the past but it gives me a negative value.我过去曾尝试过该代码,但它给了我一个负值。 I have this new code, but it is for two values, but how can I tweak it to loop over the values of column?我有这个新代码,但它适用于两个值,但我如何调整它以循环列的值?

def time_diff(start, end):
    if isinstance(start, datetime_time): # convert to datetime
        assert isinstance(end, datetime_time)
        start, end = [datetime.combine(datetime.min, t) for t in [start, end]]
    if start <= end: # e.g., 10:33:26-11:15:49
        return end - start
    else: # end < start e.g., 23:55:00-00:25:00
        end += timedelta(1) # +day
        assert end > start
        return end - start

Use:利用:

s = dataFrame.groupby(['DeviceName'])['Time_ist_td'].diff()
dataFrame['Time_diff']=s.where(s>pd.Timedelta(0),-s).dt.total_seconds()) // 60

basic idea:基本思想:

s=pd.Series([-1,1])
print(s)

0   -1
1    1
dtype: int64
s=s.where(s>0,-s)
print(s)

0    1
1    1
dtype: int64

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM