我正在尝试将具有以下形式的大型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)分组,然后对相应的索引对(例如{{ 1}} = 12,store_nbr
= 109),按时间顺序显示行,以便有序行看起来像,例如:
item_nbr
在这里看起来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
这将产生以下MultiIndex:
grouped = stores.set_index(['store_nbr', 'item_nbr'])
有人从这里有任何建议吗?有没有一种简单的方法可以通过操纵groupby对象来实现此目的?
答案 0 :(得分:1)
您可以使用以下方式对行进行排序:
df.sort_values(by='date')