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

数据集空值处理问题:使用均值/中位数等方法填充空值不生效如何解决

空值填充不生效的核心原因
  • 字段类型不匹配:wepp_id 字段大概率是 object/字符串类型,均值、最大值、最小值等统计函数仅能对数值类型字段生效,对字符串字段调用这类函数会直接返回空值,用空值替换空值自然没有效果。你可以执行 df['wepp_id'].dtype 验证字段类型。
  • 空值匹配兼容问题:replace(np.NAN, ...) 写法对不同格式的空值(例如pandas原生的pd.NA、Python自带的None)匹配度低,容易出现匹配不到未替换的情况。
  • 填充逻辑不符合字段属性:wepp_id 通常是电厂的唯一标识类字段,本身不属于可计算的数值字段,用均值、中位数这类数值统计结果填充本身就不符合业务逻辑,就算类型正确也没有实际意义。
解决办法

分两种场景处理:

场景1:wepp_id 确实为数值类型,需要用统计值填充

首先统一字段类型和空值格式,改用pandas原生的fillna方法执行填充:

import pandas as pd
import numpy as np
# 强制转为数值类型,无法转换的内容统一设为空值
df['wepp_id'] = pd.to_numeric(df['wepp_id'], errors='coerce')
# 用均值填充空值,可根据需求替换为median()/max()/min()
df['wepp_id'] = df['wepp_id'].fillna(df['wepp_id'].mean())

填充后执行 df['wepp_id'].isnull().sum() 即可验证填充效果。

场景2:wepp_id 为标识/字符串类型,不能用数值统计值填充

选择符合字段属性的填充逻辑:

  • 用固定占位符填充:
df['wepp_id'] = df['wepp_id'].fillna('unknown')
  • 用众数填充(仅适合分类字段):
# 取第一个众数填充,避免多众数的情况报错
df['wepp_id'] = df['wepp_id'].fillna(df['wepp_id'].mode()[0])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:24:04