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

如何使用sort_values?如何基于mean列对给定电影评分数据集排序?

关于pandas中sort_values()的使用及你的电影数据集排序方案

嘿,我来给你拆解这两个问题,都是日常用pandas处理数据时的高频操作,很实用的!

1. 怎么用sort_values()?

sort_values()是pandas里用来给DataFrame或Series排序的核心方法,用法灵活,我给你梳理几个常见场景:

  • 单列基础排序:最常用的就是按某一列排序,只需要给by参数传入列名就行。默认是升序(从小到大),如果要降序,就把ascending参数设为False。
    举个简单例子:
    # 按"score"列升序排序
    df_sorted_up = df.sort_values(by="score")
    # 按"score"列降序排序
    df_sorted_down = df.sort_values(by="score", ascending=False)
    
  • 多列优先级排序:如果需要先按A列排序,A列相同的再按B列排序,就给by传一个列名列表,还可以给每个列单独指定排序方向,用ascending传对应的布尔值列表。
    比如:
    # 先按"size"升序,再按"mean"降序排序
    df_sorted_multi = df.sort_values(by=["size", "mean"], ascending=[True, False])
    
  • 小细节补充:
    • 如果数据里有空值,用na_position控制它们的位置:na_position="first"把空值放最前面,默认"last"放最后。
    • 排序后如果想重置索引(让索引从0开始连续编号),加上ignore_index=True就行,不用手动再调索引。

2. 你的电影评分数据集怎么按mean列排序?

先假设你已经把这份电影数据加载成了pandas的DataFrame,比如叫movie_ratings,数据结构大概是这样:

titlesizemean
'Til There Was You (1997)92.333333
1-900 (1994)52.600000
101 Dalmatians (1996)1092.908257
12 Angry Men (1957)1254.344000
187 (1997)413.024390

接下来分两种需求给你写代码:

需求1:按mean升序排序(从最低分到最高分)

默认就是升序,代码可以这么写:

# 升序排序,ascending=True可以省略不写
sorted_mean_asc = movie_ratings.sort_values(by="mean")

排序后结果里,评分最低的'Til There Was You (1997)会排在最前面,评分最高的12 Angry Men (1957)在最后。

需求2:按mean降序排序(从最高分到最低分)

如果想优先看评分高的电影,就用降序:

# 指定ascending=False实现降序
sorted_mean_desc = movie_ratings.sort_values(by="mean", ascending=False)

这时候12 Angry Men (1957)会排在第一位,'Til There Was You (1997)在最后。

额外优化:排序后重置索引

要是你觉得排序后的原索引看着乱,想让索引从0开始重新排,加个ignore_index=True就行:

sorted_mean_desc = movie_ratings.sort_values(by="mean", ascending=False, ignore_index=True)

内容的提问来源于stack exchange,提问作者mazdak dalkoohi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:42:29