Преобразование временного ряда в несколько элементов, каждый из которых соответствует ходу дня - PullRequest
0 голосов
/ 22 марта 2020

У меня есть временной ряд, правильно интерпретированный как Pandas, который соответствует одному измерению частоты сердечных сокращений в минуту в течение многих дней.

Мне нужно знать, каков идиоматический c способ (если таковой имеется) преобразования этого в набор (DataFrame, et c.) С несколькими временными рядами, каждый в диапазоне от 00:00 до 23 : 59.


Существует очевидный способ сделать это грубо, взяв ломтики с 24 * 60 строками. Но в общем случае могут быть всевозможные сбои, такие как нерегулярные выборки (взятые в течение 1-минутного окна ожидания из-за того, как программное обеспечение на мониторе браслета пытается обнаружить упражнение, sleep et c).

1 Ответ

0 голосов
/ 22 марта 2020

Вот хакерское решение, которое работает

dg = df[['start_time', 'heart_rate']].set_index('start_time').groupby(pd.Grouper(freq='D'))

dh = pd.DataFrame()

for name, group in dg:
    timestamps = pd.Series([val.time() for val in group.index])
    group = group.rename(columns={"heart_rate": str(name.date())})
    group.index = timestamps
    dh = pd.concat([dh,group],axis=1)

, но я уверен, что есть что-то более идиоматическое c в Pandas.

...