经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
缺失值填充
来源:cnblogs  作者:ben犇  时间:2024/3/27 8:42:10  对本文有异议

缺失值填充

拿到的数据或多或少都不是立即可以用的,对于一些可能因为各种主观或者客观原因导致缺失的情况我们需要进行缺失值处理,尽可能地保留更多地数据。

多重插补法

(1)插补:将不完整数据集缺失的观测行估算填充m次。请注意,填充值是从某种分布中提取的。模拟随机抽取并不包含模型参数的不确定性。更好的方法是采用马尔科夫链蒙特卡洛模拟(MCMC,Markov Chain Monte Carlo Simulation)。这一步骤将生成m个完整的数据集。
(2)分析:分别对(m个)每一个完整数据集进行分析。
(3)合并:对来自各个填补数据集的结果进行综合,产生最终的统计推断,这一推断考虑到了由于数据填补而产生的不确定性。该方法将空缺值视为随机样本,这样计算出来的统计推断可能受到空缺值的不确定性的影响。

  1. from fancyimpute import IterativeImputer
  2. file_path = '../Data.xlsx'
  3. df = pd.read_excel(file_path) # 注意路径
  4. columns_to_impute = ['xxx', 'xxx', '...']
  5. # 创建多重插补器
  6. imputer = IterativeImputer()
  7. # 对指定的列进行多重插补
  8. df[columns_to_impute] = imputer.fit_transform(df[columns_to_impute])
  9. df.to_excel('../Data2.xlsx', index=False)

平均值法

如字面意思,用该列的平均值填充该列的缺失。

  1. file_path2 = '../Data.xlsx'
  2. df = pd.read_excel(file_path2)
  3. columns_to_fill_median = ['xxx', 'xxx', '...']
  4. # 将指定列中的空值填充为该列的平均值
  5. for column in columns_to_fill_median:
  6. mean_value = df[column].mean()
  7. df[column] = df[column].fillna(mean_value)
  8. output_file_path = '../Data2.xlsx'
  9. df.to_excel(output_file_path, index=False)

KNN法

K最近距离法:先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据。

  1. from sklearn.impute import KNNImputer
  2. file_path2 = '../Data.xlsx'
  3. df = pd.read_excel(file_path2) # 注意路径
  4. columns_to_impute = ['xxx', 'xxx', '...']
  5. imputer = KNNImputer()
  6. df[columns_to_impute] = imputer.fit_transform(df[columns_to_impute])
  7. df.to_excel('../Data_2.xlsx', index=False)

删除

如果你的数据足够多,也可以简单点直接把有空缺值的都删了。

Reference

Sklearn中有许多填充方法:https://scikit-learn.org/stable/modules/impute.html

原文链接:https://www.cnblogs.com/benbenlzw/p/18097401

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号