如何从名为result的DataFrame中筛选第二列值为0的行?
筛选Pandas DataFrame中指定列值为0的行
刚好处理过类似的需求,给你两种实用的解决办法,完美对应你提到的SQL查询逻辑:
方法1:布尔索引(最常用的常规操作)
这是Pandas里筛选行的标准玩法,和SQL的WHERE子句逻辑完全匹配:
# 直接筛选'0'列值等于0的所有行 filtered_result = result[result['0'] == 0]
简单说,result['0'] == 0会生成一个由True/False组成的数组,标记每一行是否符合条件,用这个数组去索引原DataFrame,就会只留下符合条件的行。
方法2:用query()方法(贴近SQL语法)
如果你更习惯SQL的写法,query()方法绝对适合你——语法和你给出的SQL几乎一模一样。不过要注意,你的列名是纯数字0,得用反引号``把它括起来,避免语法报错:
# 类SQL风格的筛选语句 filtered_result = result.query("`0` == 0")
要是列名是普通字符串(比如category这种),直接写result.query("category == 0")就行,和SQL的SELECT * FROM RESULT WHERE category = 0简直无缝衔接。
小技巧:验证筛选结果
怕筛选错了?可以快速检查结果里目标列的唯一值:
print(filtered_result['0'].unique()) # 正常输出应该是 array([0])
内容的提问来源于stack exchange,提问作者QBits
相关产品推荐
相关产品推荐

