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

如何在Python中删除DataFrame中非欧洲与非洲区域的行?

解决Pandas筛选多区域行的问题

当然可以用逻辑或实现同时保留欧洲和非洲区域行的需求!你之前尝试没成功,大概率是误用了Python原生的or运算符——在Pandas的布尔索引场景里,我们需要用按位或运算符|,而不是普通的or,原因是Pandas处理的是布尔数组而非单个布尔值。

下面给你两种可行的实现方式:

方法一:使用按位或运算符|

记得给每个条件单独加括号(因为==的优先级高于|,不加括号会导致运算顺序错误):

df1 = df1.loc[(df1["region"] == "Europe") | (df1["region"] == "Africa")]

方法二:使用isin()方法(更简洁)

如果需要筛选的区域值较多,用isin()会更直观且不易出错,它可以直接匹配列表中的所有取值:

df1 = df1.loc[df1["region"].isin(["Europe", "Africa"])]

简单解释下为什么or不行:Python的or是用来判断单个布尔值的真假逻辑,而Pandas的布尔索引需要返回一个和原DataFrame行数一致的布尔数组,|会对数组中的每个元素执行按位或操作,这才是我们需要的逐行判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 01:32:43