多索引DataFrame多列排序:按Mode降序、Symbol升序排序
解决多索引DataFrame排序问题
你的问题出在多索引列的指定方式上:因为你的DataFrame列是双层索引(MultiIndex),Mode和Symbol列的第一级索引是空字符串,第二级才是列名,直接写['Mode', 'Symbol']无法匹配到正确的列。
正确实现代码
# 按Mode降序、Symbol升序排序,生成新的排序后DataFrame df_sorted = df.sort_values(by=[('', 'Mode'), ('', 'Symbol')], ascending=[False, True])
验证列索引结构
如果不确定列的完整索引,可以先打印列信息确认:
print(df.columns)
输出会显示列的双层索引,其中Mode和Symbol对应的索引是('', 'Mode')和('', 'Symbol')。
补充说明
如果需要直接修改原DataFrame,无需生成新变量,加上inplace=True参数即可:
df.sort_values(by=[('', 'Mode'), ('', 'Symbol')], ascending=[False, True], inplace=True)
内容的提问来源于stack exchange,提问作者M J
相关产品推荐
相关产品推荐

