按条件筛选行
DataFrame 上的布尔掩码
按条件筛选行 是 CoddyKit 上的免费 Data Science Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Data Science Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Data Science Academy 课程共包含 4 节课。
从列到行
选择列会缩小宽度;筛选行会缩短长度。现在,您可以只保留符合所关注条件的记录。🔍
条件生成掩码
对某一列进行比较,pandas 会返回一个布尔掩码:每一行对应一个 True 或 False,用来告诉您哪些记录符合条件。
mask = df["age"] > 30
print(mask.head())应用掩码
将掩码放入方括号中,pandas 就只会保留值为 True 的行。结果是一个列相同但规模更小的 DataFrame。
adults = df[df["age"] > 30]相等筛选
使用两个等号来精确匹配某个值。请记住,单个等号会尝试赋值,而不是进行比较。
df[df["city"] == "Paris"]不等与比较
您可以使用完整的比较运算进行筛选:不等于、大于等于和小于等于都可以用于列。
df[df["score"] >= 80]
df[df["city"] != "Paris"]按文本筛选
字符串列支持 str 访问器。使用 str.contains 可以保留文本中包含某个模式的行。
df[df["email"].str.contains("@gmail")]使用 between 筛选
对于数值范围,between 比两个单独的比较更清晰,并且默认包含两端的值。
df[df["age"].between(18, 65)]同时保留选定的列
将行筛选与 loc 结合起来,就能在一行易读的代码中提取匹配的行和选定的列。
df.loc[df["age"] > 30, ["name", "age"]]掩码可以重复使用
掩码其实就是一个 Series,因此您可以将它保存下来,在不同的选择操作中重复使用,而无需重新编写条件。
senior = df["age"] > 60
df[senior]
df.loc[senior, "name"]统计匹配数量
由于 True 会被计为 1,对掩码调用 sum,就能在实际筛选之前得知有多少行符合条件。
(df["age"] > 30).sum()筛选不会改变 df
筛选会返回一个新的 DataFrame,而不会修改原始数据。将结果赋给一个变量即可保留它。
young = df[df["age"] < 30]
# df itself is unchanged快速检查
回想一下,对某一列进行比较会产生什么结果。
回顾:筛选行
条件会构建一个布尔掩码,方括号会应用它,而 loc 还能进一步选择列。现在,您已经可以只保留真正需要的记录了。✅
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「按条件筛选行」课时是免费的吗?
是的 — 「按条件筛选行」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Data Science Academy 课程的其余内容,请升级到 CoddyKit PRO。 Data Science Academy 课程共包含 4 节课。
「按条件筛选行」这节课中我会学到什么?
DataFrame 上的布尔掩码 你通过在浏览器中直接运行的动手代码来练习 Data Science Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Data Science Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Data Science Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「按条件筛选行」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Data Science Academy 课中编写并运行代码吗?
能。每节 Data Science Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。