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

如何用行均值替换nan值?SimpleImputer替代Imputer的实现方法

用行均值填充NaN值的解决方案

方法一:使用Pandas(最简便)

直接借助Pandas的fillna方法结合行均值计算,就能快速实现按行填充NaN:

import pandas as pd
import numpy as np

x = [[2,4,np.nan,5,3],[2,3,5,np.nan]]
df = pd.DataFrame(x)
# 按行遍历,用当前行的均值填充该行的NaN
df_filled = df.apply(lambda row: row.fillna(row.mean()), axis=1)
print(df_filled)

也可以通过转置数据的方式实现,适合处理大规模数据:

df_filled = df.T.fillna(df.mean(axis=1)).T

方法二:结合NumPy与Sklearn SimpleImputer

如果需要基于Sklearn生态实现,可以通过转置数据绕开SimpleImputer不支持axis=1的限制:

import numpy as np
from sklearn.impute import SimpleImputer

x = np.array([[2,4,np.nan,5,3],[2,3,5,np.nan]])
# 转置数据,将原数据的行转为列
x_transposed = x.T
# 初始化SimpleImputer,用均值填充缺失值
imputer = SimpleImputer(strategy='mean')
# 填充后转置回原数据形状
x_filled = imputer.fit_transform(x_transposed).T
print(x_filled)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:02:37