Я пытаюсь реструктурировать большой DataFrame следующей формы как MultiIndex:
date store_nbr item_nbr units snowfall preciptotal event
0 2012-01-01 1 1 0 0.0 0.0 0.0
1 2012-01-01 1 2 0 0.0 0.0 0.0
2 2012-01-01 1 3 0 0.0 0.0 0.0
3 2012-01-01 1 4 0 0.0 0.0 0.0
4 2012-01-01 1 5 0 0.0 0.0 0.0
Я хочу сгруппировать по store_nbr
(1-45), внутри каждой группы store_nbr
поitem_nbr
(1-111), а затем для соответствующей пары индексов (например, store_nbr
= 12, item_nbr
= 109) отобразите строки в хронологическом порядке, так что упорядоченные строки будут выглядеть, например:
store_nbr=12, item_nbr=109: date=2014-02-06, units=0, snowfall=...
date=2014-02-07, units=0, snowfall=...
date=2014-02-08, units=0, snowfall=...
... ...
store_nbr=12, item_nbr=110: date=2014-02-06, units=0, snowfall=...
date=2014-02-07, units=1, snowfall=...
date=2014-02-08, units=1, snowfall=...
...
Похоже, некоторая комбинация groupby
и set_index
может быть полезна здесь, но я застреваю после следующей строки:
grouped = stores.set_index(['store_nbr', 'item_nbr'])
Это приводит к следующемуMultiIndex:
date units snowfall preciptotal event
store_nbr item_nbr
1 1 2012-01-01 0 0.0 0.0 0.0
2 2012-01-01 0 0.0 0.0 0.0
3 2012-01-01 0 0.0 0.0 0.0
4 2012-01-01 0 0.0 0.0 0.0
5 2012-01-01 0 0.0 0.0 0.0
У кого-нибудь есть предложения?Есть ли простой способ сделать это, манипулируя объектами groupby?