I\'m taking a Data Mining course at university right now, but I\'m a wee bit stuck on a multi-index sorting problem.
The actual data involves about 1 million reviews of
You're looking for sort:
In [11]: s = pd.Series([3, 1, 2], [[1, 1, 2], [1, 3, 1]])
In [12]: s.sort()
In [13]: s
Out[13]:
1 3 1
2 1 2
1 1 3
dtype: int64
Note; this works inplace (i.e. modifies s), to return a copy use order:
In [14]: s.order()
Out[14]:
1 3 1
2 1 2
1 1 3
dtype: int64
Update: I realised what you were actually asking, and I think this ought to be an option in sortlevels, but for now I think you have to reset_index, groupby and apply:
In [21]: s.reset_index(name='s').groupby('level_0').apply(lambda s: s.sort('s')).set_index(['level_0', 'level_1'])['s']
Out[21]:
level_0 level_1
1 3 1
1 3
2 1 2
Name: 0, dtype: int64
Note: you can set the level names to [None, None] afterwards.