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

PySpark使用~isin筛选数据返回空DataFrame的原因及解决方法

问题原因与解决方法

核心原因

你用错了Pandas的方法:DataFrame.filter() 是用来按标签(列名或行索引)筛选的工具,不是用来按行的布尔条件筛选行的。你传入的~B.title.isin(list_A)是一个布尔序列,filter根本不识别这种条件,所以返回了空结果。而isin()本身功能正常,是因为你用错了包裹它的方法。

解决步骤

  1. 替换错误的filter用法:直接用布尔索引筛选行,这是Pandas里按条件筛选行的标准方式:
    # 正确写法:用布尔索引
    result = B[~B.title.isin(list_A)]
    # 或者用query方法,写法更简洁
    result = B.query("~title.isin(@list_A)")
    
  2. 验证结果:执行result.count()就能得到正确的非空计数了。

额外说明

你之前尝试删除空值、调整空值条件没用,本质是因为filter方法的用途完全不符合你的需求。记住:

  • 按行/列标签筛选 → 用filter()
  • 按行的条件逻辑筛选 → 用布尔索引或query()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:41:26