首页 > 其他分享 >缺失值填充

缺失值填充

时间:2024-03-26 19:46:16浏览次数:11  
标签:填充 df impute file 缺失 columns

缺失值填充

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

多重插补法

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

from fancyimpute import IterativeImputer

file_path = '../Data.xlsx' 

df = pd.read_excel(file_path) # 注意路径

columns_to_impute = ['xxx', 'xxx', '...']  

# 创建多重插补器
imputer = IterativeImputer()

# 对指定的列进行多重插补
df[columns_to_impute] = imputer.fit_transform(df[columns_to_impute])

df.to_excel('../Data2.xlsx', index=False)

平均值法

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

file_path2 = '../Data.xlsx'

df = pd.read_excel(file_path2)

columns_to_fill_median = ['xxx', 'xxx', '...']

# 将指定列中的空值填充为该列的平均值
for column in columns_to_fill_median:
    mean_value = df[column].mean()
    df[column] = df[column].fillna(mean_value)

output_file_path = '../Data2.xlsx'
df.to_excel(output_file_path, index=False)

KNN法

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

from sklearn.impute import KNNImputer

file_path2 = '../Data.xlsx' 

df = pd.read_excel(file_path2) # 注意路径

columns_to_impute = ['xxx', 'xxx', '...']  

imputer = KNNImputer()

df[columns_to_impute] = imputer.fit_transform(df[columns_to_impute])

df.to_excel('../Data_2.xlsx', index=False)

删除

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

Reference

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

标签:填充,df,impute,file,缺失,columns
From: https://www.cnblogs.com/benbenlzw/p/18097401

相关文章

  • Double类型数值相加导致精度缺失问题
    问题描述doublev1=13.01;for(inti=0;i<10;i++){v1+=13;System.out.println(v1);}解决方案doublev1=4.5;doublev2=4.55;BigDecimalb1=newBigDecimal(Double.toString(v1));BigDecimalb2=new......
  • LeetCodeHot100 数组 53. 最大子数组和 56. 合并区间 238. 除自身以外数组的乘积
    53.最大子数组和https://leetcode.cn/problems/maximum-subarray/description/?envType=study-plan-v2&envId=top-100-likedpublicintmaxSubArray(int[]nums){int[]dp=newint[nums.length];dp[0]=nums[0];for(inti=1;i<nums......
  • LeetCode题练习与总结:缺失的第一个正数
    一、题目给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。二、解题思路遍历数组:首先,我们需要遍历数组,找到所有负数和零,并将它们替换为一个特定的值(比如数组的最大值加一),这样我们就......
  • 文本内容如何插入excel表格中的一列,如其他列空自动填充!
    主要功能是从文本文件中读取内容,并插入到Excel文件的特定列中(这里假设是第三列,名称为’Column3’)。以下是代码功能的具体描述:创建一个Tk窗口,布局包含两个标签分别对应Excel文件路径和文本文件路径,以及两个输入框和两个浏览按钮让用户选择文件路径。定义load_excel_file和l......
  • python时间序列缺失值补零
    有个雨滴谱的数据,情况是有雨滴的时候会记录那个时刻的雨滴情况,但是无雨滴的时间没有记录那么我想花一个雨滴时间序列的情况,就需要补全没有雨滴的时间,并且记录为0数据情况如下: python代码:#!usr/bin/envpython#-*-coding:utf-8-*-"""@author:Su@file:timecomplet.p......
  • 常用加密及其相关的概念、简介(对称、AES、非对称、RSA、散列、HASH、消息认证码、HMAC
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  无前言  在之前,一直是通过生活、工作零零碎碎接触过加密及加密算法相关的信息,但是也只是听说过,并不知道这些算法用处和区别。  最近由于工作安......
  • MetaObjectHandler自动填充不生效
    背景:导入时涉及到保存数据到数据库,插入失败,错误如下解决方案:插入的实体类基本都继承了一个BaseEntity,会涉及到tmSmp和tmCreate这两个自动填充字段,tmSmp是FieldFill.INSERT类型,tmCreate是FieldFill.INSERT_UPDATE自动填充一般流程:自行实现MetaObjectHandler并注入到IOC容器中......
  • sql server 左链接为准 ,匹配不到,空填充
    SELECT*,PR.OrderNoFROMTB_USERuOUTERAPPLY(  SELECTTOP    1R.id,    R.OrderNo  FROM    tb_order(NOLOCK)R   WHERE    R.ID=u.ORDERIDORDERBYOutTimedesc  )ASPR  WHEREu.IsDel=0  SELECTu.L......
  • 找不到mfc140u.dll怎么办?修复缺失mfc140u.dll的多种方案分享
    mfc140u.dll文件是一个重要的动态链接库文件,它在Windows操作系统中发挥着关键的作用。由于各种原因,例如应用程序冲突或系统错误等,mfc140u.dll文件有时会出现丢失的情况。一旦发生这种问题,运行依赖此文件的应用程序将无法正常启动,可能导致错误提示或应用程序崩溃。因此,解决mfc14......
  • 数据清洗三(缺失处理)
    缺失值的处理:Pandas读取某列、某行数据——loc、iloc用法总结_data.iloc用法-CSDN博客 loc函数的使用方法#非常重要的列表推导式#修改出发地是空的,可以将路线名的前两个字段提取出来然后填补到出发地为空的字段中#首先先将路线名的前两个字段提取出来[str(x)[:2]forxi......