Как рассчитать разницу во времени между значениями в столбце за полночь? - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть столбец значений меток времени для каждого часа в течение 25 дней. Я хочу взять разницу во времени между ними. Я пробовал код в прошлом, но он дает мне отрицательное значение. У меня есть этот новый код, но он для двух значений, но как я могу настроить его, чтобы зациклить значения столбца?

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

1 Ответ

0 голосов
/ 02 ноября 2019

Использование:

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

основная идея:

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
...