利用python进行数据分析 |数据清洗与准备
创始人
2024-03-29 21:07:38

一.处理缺失值

1.过滤缺失值

axis=0表示删除行变量,axis=1表示删除列变量

how参数可选值为any或all,all表示删除全为NaN的行

threth为整数类型,表示删除的条件

data = pd.Series([1,NA,3.5,NA,7])
data.dropna(axis=0,how='any',threth=None)
data[data.notnull()]

2.补全缺失值

当数据中出现缺失值时,可以用其他的数值进行填充,常用的方法是fillna,语法是

fillna(value=None,method=None,axis=None,inplace=False)

其中value值除了基本类型外,还可以使用字典,实现对不同的列填充不同的值,method表示采用填充数据的方法,常用" ffill " ," bfill "

df.fillna(0)
df.fillna(method='ffill')
df.fillna(df.mean())

3.检测缺失值 

pandas使用NaN表示浮点或非浮点数组中的缺失数据,python内置的None值也会被当成缺失值处理,pandas使用isnull方法检测是否为缺失值,检测对象的每一个元素返回一个bool值

data.isnull()

 4.处理缺失值有三种方法

①过滤法

又称为删除法,是指当缺失的观测比例非常低时(5%以内),直接删除存在缺失的观测;或者当某变量缺失的观测比例非常高时(85%以上),直接删除这些缺失的变量

②填充法

又称为替换法,是指用某种常数直接替换那些缺失值,比如对连续值变量采用均值或者中位数替换,对于离散值变量采用众数替换

③插值法

根据其它非缺失的变量或观测来预测缺失值,常见的插值法有线性插值法,KNN插值,Lagrange插值法等

5.数据间的空格

#查看数据中的空格
df['week'].value_counts()
#去除数据中的空格
df['week'] = df['week'].map(str.strip)
df['week'] = df['week'].map(str.ltrip)
df['week'] = df['week'].map(str.rtrip)

二.数据转换

1.删除重复值

检测数据集是否重复,pandas使用duplicated方法,该方法返回的是数据行每一行的检验结果,即每一行返回一个bool值

数据表中两个条目间所有列的内容都相等时duplicated才会判断为重复值

duplicated支持从前向后(first)和从后向前(last)两种重复值查找模式

使用drop_duplicates函数后,python将返回一个只包含唯一值的数据表

#duplicated方法返回的是一个布尔值series,反映每一行是否存在重复情况
data.duplicated()
#drop_duplicates返回的是dataframe,返回数组中为false的部分
data.drop_duplicates()

2.替代值

data = pd.Series([1,999,2,999,1000,2])
data.replace(999,np.nan)
data.replace([999,1000],np.nan)
data.replace([999,1000],[np.nan,0])

3.检测和过滤异常值

指那些偏离正常范围的值,不是错误值

异常值出现频率较低,但又会对实际项目分析造成偏差

异常值一般用箱线图法(分位差法)或者分布图(标准差法)来判断

异常值往往采取盖帽法或者数据离散化

data = pd.DataFrame(np.random.randn(1000,4))
col = data[2]
col[np.abs(col) > 3]
#异常值检测之标准差法
xbar = df.price.mean()
xstd = df.price.std()
print('标准差法异常值上限检测:',any(df.price>xbar + 2.5*xstd))
print('标准差法异常值下限检测;',any(df.price Q3 + 1.5*IQR))
print('箱线图法异常值上限检测:',any(df.price < Q1 - 1.5*IQR))

4.排序

#sort函数:从小到大进行排序
np.sort(a)
#argsort函数:返回的是数据中从小到大的索引值
np.argsort(b)

5.数据搜索

#np.where:可以自定义返回满足条件的情况
np.where(s>3,1,-1) #满足条件的,赋值为1,不满足的赋值为-1,返回的数据长度和s一样
#np.extract:返回满足条件的元素值
np.extract(s>3,s) #只输出满足条件的数据

6.日期格式

#使用to_datetime()方法将文本格式转换成日期格式
df['buy_date] = pd.to_datetime(df['day'],format='%Y%m%d',errors='coerce') #加errors防止报错
#dataframe数据类型如果是datetime64,可以使用dt方法取出年月日等
df['diff_day'].dt.days.head(3)
#对于时间差数据,可以使用timedelta函数将其转换成指定时间单位的数值
df['时间差'] = df['diff_day']/pd.Timedelta('1D')
#时间差数据,可以使用dt方法访问其常用属性
#字符串转时间
time1 = datetime.strptime(t,'%Y-%M-%D %H:%M:%S')

7.字符串

#pandas中提供了字符串的函数,但只能对字符型变量进行使用
#通过str方法访问相关属性
df['price'].str[0:4].head(3)
#可以使用字符串的相关方法进行数据处理
df['价格'] = df['price'].str.strip('$')
df['价格'] = df['价格'].str.replace(',','')
df['价格'] = df['价格'].astype(float)
df['location'].str.split(',').head(3)
df['mileage'].str.len().head(3)

8.数据统计

grouped = df.groupby('weekday')
grouped.sum()['totaltime']
grouped = df.groupby(by = ['customer','weekday'])
grouped.agg([np.mean,np.max])
df[['totaltime','food','drink']].agg([np.mean,np.sum])

9.离散化

df['price'] = pd.cut(df['price_new'],5,labels=range(5))
df['price'] = pd.qcut(df['price_new'],w,labels=range(k))

10.大小写转换

df['week'] = df['week'].map(str.upper)
df['week'] = df['week'].map(str.lower)
df['week'] = df['week'].map(str.title)

11.数据分组

df['week'] = pd.cut(df['day'],bins,labels = group_names)

12.数据分列

df = pd.DataFrame((x.split('-') for x in data1.grade),index = data1.index)

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...