панды сгруппированы и агрегированы разными факторами - PullRequest
0 голосов
/ 17 июня 2019

Я использую Python 3 и панды.

У меня есть фрейм данных;

tpfs.info ()

     <class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2121 entries, 2019-05-15 00:10:00 to 2019-05-31 23:52:00
Data columns (total 4 columns):
bg         2121 non-null int64
carbs      2121 non-null float64
humalog    2121 non-null float64
lantus     2121 non-null float64
dtypes: float64(3), int64(1)
memory usage: 162.9 KB

Данные выглядят так;

                        bg  carbs   humalog lantus
time                
2019-05-30 08:36:00 150     0.0     0.0     0.0
2019-05-30 08:52:00 154     0.0     0.0     0.0
2019-05-30 09:00:00 158     0.0     0.0     0.0
2019-05-30 09:00:00 0       39.0    0.0     0.0
2019-05-30 09:00:00 0       0.0     2.5     0.0
2019-05-30 09:00:00 0       0.0     0.0     13.0
2019-05-30 09:07:00 161     0.0     0.0     0.0
2019-05-30 09:23:00 163     0.0     0.0     0.0
2019-05-30 09:36:00 160     0.0     0.0     0.0
2019-05-30 09:38:00 156     0.0     0.0     0.0

Я хочу объединить данные так, чтобы у меня были строки для каждого 24-часового периода, которые показывают среднее значение bg и суммы для углеводов, humalog и lantus.

I 'мы пробовали различные комбинации groupby и agg и возвращали различные сообщения об ошибках.Суть в том, что я просто вырезаю код вставки из различных источников и пытаюсь настроить их в соответствии с моим сценарием использования, не полностью понимая, как они работают.

Несмотря на примеры вопросов и ответов, документацию и то, как у меня естьЯ не могу найти пример, достаточно близкий к тому, что я пытаюсь сделать, чтобы подать заявку.Возможно извлечение 2 новых фреймов данных (один для среднего значения bg и один для сумм, а затем их объединение.

Есть мысли?

1 Ответ

1 голос
/ 17 июня 2019

Вы хотите .resample() в сочетании с .agg():

tpfs.resample('24h').agg({
    'bg':'mean',
    'carbs':'sum',
    'humalog':'sum',
    'lantus':'sum'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...