Я пытаюсь вычесть два столбца в CSV, чтобы создать третий столбец "Продолжительность" Время окончания - Время начала
Каждая строка также соответствует идентификатору пользователя.
Я могу создать CSV-файл только с столбцом «Длительность», но я скорее перенаправляю его обратно в исходный CSV.
Формат времени, например, такой: 2016-11-12 01:25:24+00 - 2016-11-12 01:25:20+00
До сих пор я сделал это
start_stop_sessions = pd.read_csv("start_stop_sessions.csv", parse_dates
['time_x', 'time_y'])
start_stop_sessions['time_delta'] = start_stop_sessions.time_y.values -
start_stop_sessions.time_x.values
Duration = (start_stop_sessions.time_delta)
print (Duration)
sys.stdout = open('Duration.csv', 'w')
Durationlist = ("Duration.csv")
max_value = max(Durationlist)
min_value = min(Durationlist)
Я делаю это правильно?
ТЕСТОВЫЕ ДАННЫЕ
time_x, anonymous_id, time_y
2016-11-20 18:35:57+00, 1, 2016-11-20 19:03:31+00
2016-11-21 19:33:06+, 2, 2016-11-21 19:45:47+00
2016-11-21 19:22:52+00, 3, 2016-11-21 19:26:02+00
1) Мне нужно было бы создать 4-й столбец Duration
2) Список MIN, MAX, AVG для этого столбца продолжительности
print (pd.show_versions())
27.03.2017df['Duration'] = ((df['time_y'] - df['time_x'])).dt.round('S')
, но не проверено, потому что у меня нет замыкающего0
27.03.2017nanoseconds
, что возвращаютdf['Duration'] = ((df['time_y'] - df['time_x'])).astype(str)
? Все значения заканчиваются0
? 27.03.2017.
и удалить конечные0
-df['Duration'] = ((df['time_y'] - df['time_x'])).astype(str).str.split('.').str[0]
- вывод не timedelta, а строка. 27.03.20170
-df['Duration'] = pd.to_timedelta(((df['time_y'] - df['time_x'])).astype(str).str.split('.').str[0])
27.03.2017