#python-3.x #pandas #time-series
#python-3.x #pandas #временные ряды
Вопрос:
У меня есть фрейм данных временных рядов pandas, и я хочу знать общее прошедшее время для фрейма данных или точек внутри фрейма данных. Как мне это сделать?
Ниже приведены некоторые примеры данных из моего фрейма данных:
elapsed_time Layer
1970-01-01 00:20:30 20.0
1970-01-01 00:20:31 20.0
1970-01-01 00:20:32 20.0
1970-01-01 00:20:33 20.0
1970-01-01 00:20:34 20.0
1970-01-01 00:20:35 20.0
1970-01-01 00:20:36 20.0
1970-01-01 00:20:37 20.0
1970-01-01 00:20:38 20.0
1970-01-01 00:20:39 20.0
1970-01-01 00:20:40 20.0
1970-01-01 00:20:41 20.0
1970-01-01 00:20:42 20.0
1970-01-01 00:20:43 20.0
1970-01-01 00:20:44 21.0
1970-01-01 00:20:45 21.0
1970-01-01 00:20:46 21.0
1970-01-01 00:20:47 21.0
1970-01-01 00:20:48 21.0
1970-01-01 00:20:49 21.0
1970-01-01 00:20:50 21.0
1970-01-01 00:20:51 21.0
1970-01-01 00:20:52 21.0
1970-01-01 00:20:53 21.0
1970-01-01 00:20:54 21.0
1970-01-01 00:20:55 22.0
1970-01-01 00:20:56 22.0
1970-01-01 00:20:57 22.0
1970-01-01 00:20:58 22.0
1970-01-01 00:20:59 22.0
1970-01-01 00:21:00 22.0
1970-01-01 00:21:01 22.0
1970-01-01 00:21:02 22.0
1970-01-01 00:21:03 22.0
1970-01-01 00:21:04 22.0
Например, я хочу знать, сколько времени занял слой 21. Существует ли какой-либо простой метод или функция для получения затраченного времени индекса? У меня не было проблем с выполнением этого, когда elapsed_time
был частью фрейма данных, но я не могу заставить его работать, когда это индекс.
Ответ №1:
Проще всего было бы сбросить индекс, чтобы иметь доступ к временной метке в виде столбца для группы по:
res = df.reset_index().groupby('Layer')['elapsed_time'].agg(['min', 'max'])
res['max'] - res['min']
Вы также можете использовать first
и last
, если вы знаете, что ваши данные отсортированы.
Комментарии:
1. Спасибо за совет, но это не помогает, пока мои временные данные являются индексом. Я не понимаю, как извлечь затраченное время из индекса.