我使用另一个Dataframe创建了一个具有MultiIndex的数据框:
arrays = [df['bus_uid'], df['bus_type'], df['type'],
df['obj_uid'], df['datetime']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['bus_uid', 'bus_type', 'type',
'obj_uid', 'datetime'])
multindex_df = pd.DataFrame(df['val'].values, index=index)
按照文档http://pandas.pydata.org/pandas-docs/stable/advanced.html所述,这个方法可以正常工作。
文档还指出,在“多重索引需要排序”一节中,标签需要排序才能正确使用索引和切片功能。
但是不知何故,
multindexed_df.sort_index(level=0)
或者
multindexed_df.sort_index(level='bus_uid')
无法正常工作,会抛出TypeError: sort_index()收到一个意外的关键字参数'level'。
在查找sort_index()对象信息时,它看起来将"by"作为我的新朋友,而不是"levels":
by:object
Column name(s) in frame. Accepts a column name or a list for a nested sort. A tuple will be interpreted as the levels of a multi-index.
我的问题如下:我该如何对我的MultiIndex进行排序,以便所有功能(如切片等)都能正常工作?