排序值
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 39 课,共 60 课。
谁得分最高?排序后答案一目了然。.sort_values("col")按某一列对行排序,默认从小到大;ascending=False则从大到小排列:
players = pd.DataFrame({
"player": ["Ada", "Ben", "Cy", "Dee", "Eli"],
"points": [14, 31, 8, 22, 17],
})
top = players.sort_values("points", ascending=False)
print(top.head(2))这会打印前 2 项:
player points
1 Ben 31
3 Dee 22这些行保留了各自的标签:Ben 保留标签 1。因此,top 的第一行是 top.iloc[0],而 top.loc[0] 仍然是 Ada。
sort_values 会返回一个新表,并保持 players 不变,所以要把结果保存到一个变量中。
挑战
中等应用商店会在 apps.csv 中列出应用,文件包含 app、downloads_k(千次下载)和 rating 这几列。程序会读取列名和数字 n,然后应该输出:
- 该列中值最大的
n行,按值从大到小排列。 Lowest:和值最小的应用。
起始代码中有两处排序错误。请修正这两处。对于另一家商店,输入 rating 和 n = 2:
app downloads_k rating
2 PetPal 88 4.9
0 Zipline 512 4.5
Lowest: Mosaic亲手试试
import pandas as pd
apps = pd.read_csv("apps.csv")
column = input()
n = int(input())
# 这段代码输出的答案不对:请修复它。
apps.sort_values(column, ascending=False)
print(apps.head(n))
lowest = apps.sort_values(column, ascending=False)
print(f"Lowest: {lowest.iloc[0]['app']}")
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
数据与图表中的所有课
自己练习: Python 在线编译器