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

Python Pandas重采样返回False而非NaN/NA问题咨询

解决Pandas重采样后缺失时段返回False而非NaN的问题

你遇到的这个问题,核心原因几乎可以锁定是数据类型不匹配导致的,咱们一步步来解决:

问题根源分析

你的value列大概率不是纯数值类型(比如float64或int64),而是混入了布尔值(True/False),导致列类型变成了object。当对混合类型的列执行resample.sum()时,空时段的计算结果就会异常返回False,而非预期的NaN。

具体解决方案

1. 先统一数据类型为数值型

先把value列转换为纯数值类型,同时将非数值内容(包括布尔值)强制转为NaN:

# 转换列类型,无法转换的内容自动转为NaN
obs_mean['value'] = pd.to_numeric(obs_mean['value'], errors='coerce')

2. 重采样时确保空时段返回NaN

使用sum()的min_count参数,指定至少需要1个非NaN值才返回求和结果,否则直接返回NaN:

freq = 'H'
obs_mean_resampled = obs_mean.resample(freq).sum(min_count=1)

验证结果

执行完上述步骤后,你的重采样结果会变成符合预期的样子:

value
time
2018-05-18 08:00:00  2.200
2018-05-18 09:00:00     NaN
2018-05-18 10:00:00  24.800
2018-05-18 11:00:00   0.800
2018-05-18 12:00:00  21.400
2018-05-18 13:00:00   2.400

之后你就可以正常用dropna()或fillna()处理这些缺失值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:17:00