筛选行
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 38 课,共 60 课。
很多查询只保留部分行:月租低于 1000 的公寓、年龄超过 60 岁的患者。对某一列进行比较,每行会得到 True 或 False,形成一个掩码:
flats = pd.DataFrame({
"area": ["North", "Center", "East", "Center", "West"],
"rooms": [2, 1, 3, 3, 2],
"rent": [950, 1200, 1100, 1650, 800],
})
print(flats[flats["rent"] < 1000])在表格的方括号中,掩码会保留值为 True 的行及其标签:
area rooms rent
0 North 2 950
4 West 2 800用 &(两者都满足)或 |(满足其一)组合条件,每个条件都放在自己的括号中,就像数组掩码一样:
print(flats[(flats["rooms"] >= 2) & (flats["rent"] < 1200)])这会打印:
area rooms rent
0 North 2 950
2 East 3 1100
4 West 2 800文本也可以:flats["area"] == "Center"。而 .shape[0] 用来统计匹配的行数。
挑战
中等一个徒步俱乐部将路线列表存储在 trails.csv 中,其中包含 trail、km 和 climb_m(爬升米数)这几列。程序会读取最长距离 max_km 和最小爬升高度 min_climb。
- 在
picked中保留长度不超过max_km且爬升高度至少为min_climb米的路线。 - 打印
picked。 - 打印符合条件的路线数量,如下所示。
对于另一份路线列表:
trail km climb_m
1 Bear Creek 6.0 300
5 Old Quarry 9.2 455
Trails that fit: 2亲手试试
import pandas as pd
trails = pd.read_csv("trails.csv")
max_km = float(input())
min_climb = int(input())
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
数据与图表中的所有课
自己练习: Python 在线编译器