You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Pandas DataFrame的'F'列进行排序?

解决Pandas多层索引DataFrame按指定列排序的问题

你的问题核心在于这个DataFrame用了多层列索引(MultiIndex)——从sample.info()的输出能看到,列名其实是元组('rating', 'F')和('rating', 'M'),而不是单独的字符串'F'或'M',这就是之前排序代码失效的原因。

正确的排序方法

你需要用元组来匹配多层索引的列结构,使用sort_values()方法就能实现按'F'列排序:

# 按F列降序排序,返回新的DataFrame
sorted_sample = sample.sort_values(by=('rating', 'F'), ascending=False)

# 如果要直接修改原DataFrame,加上inplace=True参数
sample.sort_values(by=('rating', 'F'), ascending=False, inplace=True)

为什么之前的代码不行?

你之前尝试的by='F'、by='rating,F'都无法定位到正确的列,因为多层索引的列名是二元元组,必须完全匹配这个元组结构才能选中目标列。

另一种替代方法:通过列位置排序

如果你不想写元组,也可以通过列的位置来指定(F列是第0列):

sample.sort_values(by=sample.columns[0], ascending=False)

内容的提问来源于stack exchange,提问作者R. Stewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:07:46