Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Группировка категории по дате и количеству

Как реализовать группировку конкретной категории по дате и количеству и как это можно все автоматизировать?
На рис1 показана исходная таблица. Нужно по выбранной категории скомплектовать по дате и количеству (результат на рис2). То есть сколько товара данной категории было продано за 1 и последующие дни. Использую для группировки:
group_goods_by_date = source.groupby([pd.Grouper(key='DateTime', freq='D'), 'category']) group_goods_by_date=source[(source['DateTime'] < '2016-09-02') & (source['category'] == 0)]
Не работает должным образом, должна получиться таблица. И как можно автоматизировать, чтобы каждый раз не обращаться к номеру категории?


Date Quantity Category 2016-09-01 1 0 2016-09-01 1 0 2016-09-01 1 1 2016-09-01 1 2 2016-09-02 1 1 2016-09-03 1 0
Должно получиться по категории 0:
Date Quantity 2016-09-01 2 2016-09-03 1


Ответ

Можно создать словарь DataFrame'ов:
In [82]: df_dict = {k:v.reset_index(name='Quantity') ...: for k,v in df.groupby([pd.Grouper(freq='D', key='Date'), ...: 'Category'])['Quantity'].sum() ...: .groupby(level=1)}
In [83]: df_dict.keys() Out[83]: dict_keys([0, 1, 2])
In [84]: df_dict[0] Out[84]: Date Category Quantity 0 2016-09-01 0 2 1 2016-09-03 0 1
In [85]: df_dict[1] Out[85]: Date Category Quantity 0 2016-09-01 1 1 1 2016-09-02 1 1
In [86]: df_dict[2] Out[86]: Date Category Quantity 0 2016-09-01 2 1

Комментариев нет:

Отправить комментарий