Преобразуйте строки во время (H: M: S), чтобы я мог вычесть их - PullRequest
0 голосов
/ 09 января 2019

У меня есть некоторые данные, импортированные из файла XLS, который имеет 2 столбца, содержащих информацию о времени в формате строк. Пример: 04:15:45 (что означает 4 часа, 15 минут и 45 секунд).

Далее я конвертирую его в datatime

df['column'] = pd.to_datetime(df['column'], errors='coerce')

Я получаю что-то вроде этого 2019-01-09 04:15:45, что не совсем то, что я хочу, но это нормально (у меня это скорее в формате% H% M% S). Я делаю то же самое с другим столбцом с такими же характеристиками. Далее я создаю новый столбец с разницей между ними:

df['new column'] =  df['column1'] - df['column2']

Однако, когда я пытаюсь вычесть оба, я получаю результаты, подобные этому: -1 days +23:00:00, когда все, что мне действительно нужно, это что-то вроде 00:16:12, содержащее только разницу в% H% M% S.

Желаемый результат, алгоритмически говоря, будет выглядеть примерно так:

(time planned) - (time it actually took) = (difference format 00:18:12)

1 Ответ

0 голосов
/ 10 января 2019

Вы можете преобразовать вывод в разницу в секундах.

df = pd.DataFrame({'t1': ['1:13:14', '2:34:56', '2:44:32'], 't2': ['1:15:00', '2:37:00', '3:00:00']})
df.t1 = pd.to_timedelta(df.t1)
df.t2 = pd.to_timedelta(df.t2)
df
        t1       t2
0  1:13:14  1:15:00
1  2:34:56  2:37:00
2  2:44:32  3:00:00

df['t_diff'] = (df.t1 - df.t2).dt.total_seconds()

        t1       t2  t_diff
0 01:13:14 01:15:00  -106.0
1 02:34:56 02:37:00  -124.0
2 02:44:32 03:00:00  -928.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...