Pandas DataFrame-> GroupBy-> MultiIndex Process

时间:2018-12-01 21:05:08

标签: python pandas pandas-groupby hierarchical-data multi-index

我正在尝试将具有以下形式的大型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对象来实现此目的?

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式对行进行排序:

df.sort_values(by='date')