Отдельные временные ряды в pandas и присваивают ID каждому временному ряду - PullRequest
0 голосов
/ 22 января 2020

У меня есть pandas фрейм данных со следующей формой:

datetime   sensor1_value  sensor2_value

, где datetime - индекс, который начинается и заканчивается в определенный день (хронологический порядок). Это дает мне ряд временных рядов с неодинаковым количеством измерений.

Я хочу дать каждому временному ряду (24 часа = одна серия) определенный идентификатор, поэтому мой окончательный df должен выглядеть как

datetime   ID   sensor1_value  sensor2_value

Все с ID = 1 принадлежит временной серии 1 (день 1)

Все с ID = 2 принадлежит временной серии 2 (день 2)

и т. Д.

До сих пор я пытался сгруппировать df с

dflist = []

for group in df.groupby(df.index.date):
    dflist.append(group[1])

, что дает мне список всех фреймов данных, но не один df для всех данных. Я не мог понять, как собрать все вместе и добавить идентификатор.

1 Ответ

0 голосов
/ 22 января 2020

Я думаю, это то, что вы хотите. Я восстановил фрейм данных, поскольку он не был предоставлен.

import pandas as pd
import numpy as np
times = pd.date_range(start ='1/1/2020',end='1/20/2020',periods = 100)
df = pd.DataFrame(list(zip(times, np.random.uniform(size = 100), np.random.uniform(size = 100))), 
                  columns = ['datetime', 'sensor_1_value', 'sensor_2_value'])
df['date_only'] = df.datetime.dt.date
df['ID'] = df.groupby(['date_only']).ngroup() + 1
...