#python #pandas #datetime #matplotlib #time-series
#python #pandas #дата и время #matplotlib #временные ряды
Вопрос:
Итак, у меня есть следующие временные метки, которые принадлежат TS в фрейме данных pandas:
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Timestamp('2010-11-20 00:00:00'),
Исходный csv-файл содержит показания 60 показаний за каждую прошедшую минуту, но временная метка имеет только hh: mm (например, 13:23), и когда я конвертирую / анализирую даты, он просто добавляет 00 ко всем записям секунд. Есть ли какие-либо функции pandas для добавления секунд? Мотивация этого заключается в том, что он будет красиво отображаться в matplotlib. В настоящее время у меня есть 60 точек перекрытия для каждой минуты, однако я хочу, чтобы временные метки увеличивались, например 00:00:01, 00:00:02, 00:00:03, и т.д.
Комментарии:
1. Вы должны вставить минимальный (!!!) рабочий пример вашего кода и данных
2. Если вы уверены, что в минуту ровно 60 выборок, просто создайте объект timestamp, имеющий дату и время как ноль, а секунды как 1, 2, 3 .. затем просто добавьте 2 в цикл
3. повторная выборка с частотой 1 сек может быть вариантом.
Ответ №1:
вручную добавьте туда секунды, предполагая, что они отсортированы, а приращение всегда составляет 1 секунду:
df = pd.Series([pd.Timestamp(2020,11,20,0,0)]*10)
df = pd.Series(pd.Timedelta(seconds=i) for i in range(10))
0 2020-11-20 00:00:00
1 2020-11-20 00:00:01
2 2020-11-20 00:00:02
3 2020-11-20 00:00:03
4 2020-11-20 00:00:04
5 2020-11-20 00:00:05
6 2020-11-20 00:00:06
7 2020-11-20 00:00:07
8 2020-11-20 00:00:08
9 2020-11-20 00:00:09
dtype: datetime64[ns]