如何用R语言和Python进行数据去重与缺失值处理

如何用R语言和Python进行数据去重与缺失值处理,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创新互联主营广州网站建设的网络公司,主营网站建设方案,成都APP应用开发,广州h5微信小程序开发搭建,广州网站营销推广欢迎广州等地区企业咨询

因为最近事情略多,最近更新的不勤了,但是学习的脚步不能停,一旦停下来,有些路就白走了,今天就盘点一下R语言和Python中常用于处理重复值、缺失值的函数。

在R语言中,涉及到数据去重与缺失值处理的函数一共有下面这么几个:

  • unique

  • distinct

  • intersect

  • union

  • duplicated         #布尔判断

  • is.na()/!is.na()   #缺/非缺失值

  • na.rm=TRUE/FALSE   #移除缺失值

  • na.omit(lc)        #忽略缺失值

  • complete.cases()   #完整值

mydata<-data.frame(A=runif(20,0,100),B=sample(LETTERS[1:5],20,replace=TRUE))

mydata[sample(1:20,5,replace=FALSE),"A"]<-NA   #认为构造了5个缺失值。

如何用R语言和Python进行数据去重与缺失值处理

#unique函数通常用于去重:

unique(mydata$B)                  #对含有重复值得向量进行去重

dplyr::distinct(mydata,B)         #对含有重复值字段的数据框去重

如何用R语言和Python进行数据去重与缺失值处理

#交集与补集:

dplyr中提供了两个函数可以执行交集与补集操作:

duplicated(mydata$B)              #返回重复对象的布尔值

mydata[!duplicated(mydata$B),]    #剔除重复值,仅保留唯一值

如何用R语言和Python进行数据去重与缺失值处理

A=LETTERS[1:10];B=LETTERS[6:15]

intersect(A,B)   #交集

unique(A,B)      #补集

如何用R语言和Python进行数据去重与缺失值处理

#缺失值处理:

is.na()/!is.na()      #缺/非缺失值判断

is.na(mydata)         #返回存在缺失值的布尔结果

!is.na(mydata)        #返回非缺失值的布尔结果

如何用R语言和Python进行数据去重与缺失值处理

na.rm=TRUE/FALSE   #移除缺失值

rm.na通常作为基础统计函数的参数使用,如mean,sum等

mean(mydata$A,na.rm=TRUE)

sum(mydata$A,na.rm=TRUE)

如何用R语言和Python进行数据去重与缺失值处理

na.omit(mydata)        #忽略缺失值所在行

complete.cases(mydata) #完整值(返回布尔结果)

mydata[!complete.cases(mydata$A),]#使用该函数的布尔索引确定缺失值或者排除缺失值

如何用R语言和Python进行数据去重与缺失值处理

关于更为复杂的缺失值插补技术,因为涉及到一些比较深入的方法,这里暂且不呈现,仅对缺失值的描述和筛选做以上简单归总。

---------

Python:

---------

#列表去重:

set(将列表元组化过滤重复数据)

M=[1,4,3,6,5,4,3,2,7,8]

list(set(M))

#数据框的去重:

import pandas as pd

import numpy as np

mydata=pd.DataFrame({

"A":["A","B","C","D","B","C"],

"B":[43,32,56,67,32,56]

})

mydata.drop_duplicates() 

 #使用pandas提供的数据框去重函数drop_duplicates去重重复值。

如何用R语言和Python进行数据去重与缺失值处理

#缺失值处理:

对于列表而言,numpy中诸多统计函数都有针对缺失值的操作:

nansum/nanmean/nanmin/nanmax

val= np.array([5,np.nan,8,9,np.nan]) 

np.nansum(val)

np.nanmean(val)

np.nanmin(val)

np.nanmax(val)

如何用R语言和Python进行数据去重与缺失值处理

pandas中的序列和数据框都有固定的缺失值检测、描述、差值方法:

myserie=pd.Series(["A","B",np.nan,"C"])

mydata=pd.DataFrame({

"A":["A","B","C","D","E","F"],

"B":[43,np.nan,56,67,np.nan,56]

})

#检测缺失值:

myserie.isnull()  

mydata.isnull()

如何用R语言和Python进行数据去重与缺失值处理

#返回非缺失值:

myserie.notnull()  

mydata.notnull()

如何用R语言和Python进行数据去重与缺失值处理

#过滤缺失值:

myserie.dropna()  

mydata.dropna()  

如何用R语言和Python进行数据去重与缺失值处理

#针对数据框而言,默认情况下,dropna丢弃含有缺失值的行。

mydata.dropna(how="all",axis=1)  #丢弃含有缺失值的行或者列

#缺失值填充:

fillna函数一共两个参数:

  • value表示要插补的值

  • method表示缺失值插补方法

myserie.fillna(0)  

mydata.fillna(0)  

如何用R语言和Python进行数据去重与缺失值处理

------------

本文小结:

------------

R语言:

数值去重:

  • unique

  • distinct

  • intersect

  • union

  • duplicated

缺失值处理:

  • is.na()/!is.na()   

  • na.rm=TRUE/FALSE   

  • na.omit(lc)        

  • complete.cases()   

Python:

重复值:

  • set(针对列表通过元组过滤)

  • drop_duplicates(针对pandas中的序列和数据框)

缺失值处理:

  • nansum/nanmean/nanmin/nanmax

  • isnull

  • dropna

  • fillna

关于如何用R语言和Python进行数据去重与缺失值处理问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


文章标题:如何用R语言和Python进行数据去重与缺失值处理
转载源于:http://scyanting.com/article/jpdhss.html