#导入必要的库
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
#读取数据
data = data_all1
#找出所有缺失值所在的行和列
nan_rows,nan_cols = np.where(pd.isnull(data))
#建立随机森林模型,以非缺失值为训练集,缺失值为预测集
rf = RandomForestRegressor()
#rf.fit(data.iloc[:, ~np.isnan(data).any(axis=0)],data.iloc[:,nan_cols])
rf.fit(data.iloc[:, ~np.isnan(data).any(axis=0)],data.iloc[:,nan_cols])
#预测缺失值
predicted = rf.predict(data.iloc[:,~np.isnan(data).any(axis=0)])
#填补缺失值
data.iloc[nan_rows,nan_cols] = predicted
#输出数据
print(data)
注意:需要有完全非缺失的数据集合训练