Python 数据分析 08:数据排序 —— 思路自述

目标:把订单表按销量、价格等字段排序,支持单列和多列。

先上代码

import pandas as pd

# 1. 读取数据(只读前10行,方便观察排序效果)
df = pd.read_csv('data/sales.csv', nrows=10)
var = df

# 2. 排序

# 2.1 根据销量进行倒序排序
var1 = df.sort_values(by='销售数量', ascending=False)

# 2.2 根据价格升序排序
var2 = df.sort_values(by='单价', ascending=True)

# 2.3 先按价格升序,价格相同再按销售数量倒序
var3 = df.sort_values(by=['单价', '销售数量'], ascending=[True, False])

print(var3)

我的思路:一个 sort_values 走天下

排序不用自己写算法,pandas 就一个方法 sort_values,靠两个参数:by 说按哪列排,ascending 说升还是降。

var1 按销量从高到低,ascending=False 就是倒序;var2 设 True 则从低到高。

进阶:多列排序,主次分明

var3 是真实里常见的“先按 A 排,A 一样再按 B 排”。我用两个列表:by=['单价','销售数量']、ascending=[True, False]——by 里越靠前优先级越高,先按单价升序,单价相同的行再按销量降序。

关键是 by 和 ascending 两个列表位置一一对应,别错位。

一个小习惯

这题我只 nrows=10 读了 10 行。排序逻辑跟数据量无关,读少几行屏幕一眼看全,做演示更直观。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐