我是SAS用户。在Python中处理一些数据操作
isc_summary_sales=isc.groupby(['country','sales_channel','item_type'],as_index=False).aggregate({'order_id':['count'],'units_sold':['sum'],'unit_cost':['mean'],'unit_price':['mean'],'total_cost':['sum'])
上面的代码工作得很好,但是在尝试切片时
isc_summary_sales.loc[:,'country':'total_cost']
我犯了一个错误
UnsortedIndexError: 'Key length (1) was greater than MultiIndex lexsort depth (0)'
但是isc_summary_sales.iloc[:,0:7]
可以很好地工作
我不明白这是什么意思。为什么会发生这种情况
它抛出该错误的原因是,在聚合后,列有两级索引
比如说
正如您现在看到的,您不再有简单的列“a”、“b”、“c”和“d”,而是有多级列。似乎方法“loc”要求我们的数据框按词汇排序,当我们聚合原始数据框时,我们创建了不再排序的新列。但是,我们可以使用以下方法再次对其进行排序:
您可能还希望将列减少一级。我可以这样做:
更多关于多级索引的信息可以在这里找到:https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html
相关问题 更多 >
编程相关推荐