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

Pandas DataFrame日期列或条件过滤报错:如何筛选空值/近一年数据?

问题解决方法

错误原因分析

  1. 第一个代码报错:df['closed_date'].isnull是方法引用而非调用,必须加括号isnull()来生成每个元素是否为null的布尔值Series,否则和前面的日期条件用|运算时,会出现类型不匹配(一边是布尔Series,一边是方法对象)。
  2. 后两个代码报错:在Pandas中对Series做元素级逻辑或必须用|,不能用Python原生的or。or会试图判断整个Series的真假,这在Pandas里属于歧义操作(无法确定是要求所有元素为真还是至少一个为真),因此抛出ValueError。

正确代码

from datetime import datetime as dt, timedelta as td

# 先计算一年前的日期,让代码更清晰
one_year_ago = dt.today() - td(days=365)
# 用|做元素级逻辑或,同时确保isnull()被调用
df = df[(df['closed_date'] > one_year_ago) | (df['closed_date'].isnull())]

你也可以用isna()替代isnull(),两者功能完全一致:

df = df[(df['closed_date'] > one_year_ago) | (df['closed_date'].isna())]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:50:22