Сгруппировать более 1 столбца, а затем усреднить по другому столбцу - PullRequest
0 голосов
/ 28 ноября 2018

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

     cod           date              value 
0   1O8        2015-01-01 00:00:00    2.1
1   1O8        2015-01-01 01:00:00    2.3
2   1O8        2015-01-01 02:00:00    3.5
3   1O8        2015-01-01 03:00:00    4.5
4   1O8        2015-01-01 04:00:00    4.4
5   1O8        2015-01-01 05:00:00    3.2
6   1O9        2015-01-01 00:00:00    1.4
7   1O9        2015-01-01 01:00:00    8.6
8   1O9        2015-01-01 02:00:00    3.3
10  1O9        2015-01-01 03:00:00    1.5
11  1O9        2015-01-01 04:00:00    2.4
12  1O9        2015-01-01 05:00:00    7.2

Я хочу агрегировать по треске и дате (месяцу) и получить среднее значение, например:

                  value     
cod  date
1O8  2015-01-01    3.3
1O9  2015-01-01    4.9

Myданные имеют следующий тип: dtypes: object(1), datetime64[ns](1), float64(1)

Я пытаюсь использовать функцию .groupby() для объединения:

df.groupby(['cod', 'date', 'value']).size().reset_index().groupby('value').mean()

Но не дает правильного результата

1 Ответ

0 голосов
/ 28 ноября 2018

с использованием Grouper

df.groupby(["cod", pd.Grouper(key="date", freq="MS")]).mean()

Дополнительная информация о pbpython.com

...