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

如何移除Pandas分箱器(binner)中的NaN值?

移除分箱列表中的NaN值

直接过滤法

最简洁的方式是用列表推导式结合pd.isna()过滤掉列表里的NaN值,同时保留-inf和inf这类特殊数值:

import pandas as pd

# 假设原始分箱列表包含NaN
# binner = [-inf, -99999.0, float('nan'), 0.0, 1.0, float('nan'), 4.0, inf]

# 过滤NaN得到干净的列表
clean_binner = [val for val in binner if not pd.isna(val)]

兼容非float类型的过滤(可选)

如果列表中存在非float类型的元素,用math.isnan需要额外判断类型,避免报错:

import math

clean_binner = [
    val for val in binner 
    if not (math.isnan(val) if isinstance(val, float) else False)
]

处理IntervalIndex类型的分箱结果

如果你的mono_bin函数返回的是Pandas的IntervalIndex对象,先转成列表再过滤:

# 假设binner是IntervalIndex类型
binner_list = binner.to_list()
clean_binner = [val for val in binner_list if not pd.isna(val)]

运行上述代码后,就能得到你需要的[-inf, -99999.0, 0.0, 1.0, 4.0, inf]无NaN列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:31:13