DAY 4 缺失值的处理

Python处理数据缺失值方法
题目:初识pandas库与缺失数据的补全
  1. 打开数据(csv文件、excel文件)
  2. 查看数据(尺寸信息、查看列名等方法)
  3. 查看空值
  4. 众数、中位数填补空值
  5. 利用循环补全所有列的空值

数据的读取与查看

# 读取数据
import pandas as pd
# 使用pandas中的read_csv读取csv文件
data = pd.read_csv(r'data.csv')

# pandas读取excel文件先安装openpyel库
# 使用pandas中的read_excel读取excel文件
data2 = pd.read_excel("data.xlsx")
type(data) # 类

输出:

pandas.core.frame.DataFrame

注:

DataFrame类型:类似二维的、表格型的数据结构,类似excel表格和SQL数据库中的表

# 布尔矩阵显示缺失值,返回一个布尔矩阵,也是dataframe对象
# True表示对应位置的值缺失,False表示对应位置的值存在
data.isnull()

输出:

Id Home Ownership Annual Income Years in current job Tax Liens Number of Open Accounts Years of Credit History Maximum Open Credit Number of Credit Problems Months since last delinquent Bankruptcies Purpose Term Current Loan Amount Current Credit Balance Monthly Debt Credit Score Credit Default
0 False False False True False False False False False True False False False False False False False False
1 False False False False False False False False False True False False False False False False False False
2 False False False False False False False False False True False False False False False False False False
3 False False False False False False False False False True False False False False False False False False
4 False False False False False False False False False True False False False False False False False False
... ... ... ... ... ... ... ... ... ... ... ... ..
在R语言中处理多变量缺失值时,通常需要采用系统化的方法来确保数据的完整性和分析的可靠性。以下是几种常见的多变量缺失值处理方法: ### 1. 删除含有缺失值的观测 在某些情况下,如果缺失值的比例较小,可以直接删除含有缺失值的行或列。R语言提供了几种删除缺失值的方法: - `na.omit()`:删除所有含有缺失值的行。 ```r newdata <- na.omit(mydata) ``` - `complete.cases()`:返回一个逻辑向量,表示哪些行是完整的。 ```r newdata1 <- mydata[complete.cases(mydata), ] ``` ### 2. 单变量插补法 单变量插补法是指对每个变量单独进行插补。常见的方法包括使用均值、中位数或标准差进行插补: - **均值插补**:将缺失值替换为该变量的均值。 ```r da[is.na(da)] <- mean(da[!is.na(da)], na.rm = TRUE) ``` - **中位数插补**:将缺失值替换为该变量的中位数。 ```r da[is.na(da)] <- median(da[!is.na(da)], na.rm = TRUE) ``` - **标准差插补**:将缺失值替换为该变量的标准差。 ```r da[is.na(da)] <- sd(da[!is.na(da)], na.rm = TRUE) ``` ### 3. 多变量插补法 多变量插补法考虑了多个变量之间的关系,能够提供更准确的插补结果。常见的多变量插补方法包括: - **多重插补(Multiple Imputation, MI)**:通过模拟生成多个可能的缺失值,从而得到更稳定的估计结果。`mice`包是实现多重插补的一个常用工具。 ```r library(mice) imputed_data <- mice(mydata, m = 5, method = "pmm", maxit = 50, seed = 500) completed_data <- complete(imputed_data) ``` - **K近邻插补(K-Nearest Neighbors, KNN)**:基于相似样本的特征进行插补。`VIM`包提供了KNN插补的功能。 ```r library(VIM) kNN_data <- kNN(mydata) ``` ### 4. 使用模型进行预测插补 可以通过构建回归模型或机器学习模型来预测缺失值。例如,可以使用线性回归、随机森林等方法: - **线性回归插补**:通过已有的数据训练一个线性回归模型,然后用该模型预测缺失值。 ```r model <- lm(Ozone ~ Wind + Temp + Month + Day, data = Ozone_train) predictions <- predict(model, newdata = mydata[is.na(mydata$Ozone), ]) mydata[is.na(mydata$Ozone), "Ozone"] <- predictions ``` - **随机森林插补**:使用随机森林算法进行插补,适用于非线性关系。 ```r library(randomForest) rf_model <- randomForest(Ozone ~ Wind + Temp + Month + Day, data = Ozone_train) predictions <- predict(rf_model, newdata = mydata[is.na(mydata$Ozone), ]) mydata[is.na(mydata$Ozone), "Ozone"] <- predictions ``` ### 5. 可视化与诊断 在处理缺失值之前,建议先对缺失值的分布进行可视化和诊断,以了解缺失模式。`VIM`包提供了多种可视化工具: - **aggr()**:显示每个变量的缺失比例。 ```r library(VIM) aggr_plot <- aggr(mydata, col = c("navyblue", "red"), numbers = TRUE, sortVars = TRUE) ``` - **matrixplot()**:展示数据矩阵中的缺失值。 ```r matrixplot(mydata) ``` ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值