task_2 数据清洗及特征处理

本次学习 ,让大家了解数据分析的一些操作,主要做了数据的各个角度的观察。那么在这里,我们主要是做数据分析的流程性学习,主要是包括了数据清洗以及数据的特征处理,数据重构以及数据可视化。这些内容是为数据分析最后的建模和模型评价做一个铺垫
task _2主要是数据清洗
数据清洗
我们拿到的数据通常是不干净的,所谓的不干净,就是数据中有缺失值,有一些异常点等,需要经过一定的处理才能继续做后面的分析或建模,所以拿到数据的第一步是进行数据清洗,本章我们将学习缺失值、重复值、字符串和数据转换等操作,将数据清洗成可以分析或建模的样子。
1.缺失的数据的查失和观察
1.1

缺失值观察

1.1.1

df.info()


得出各类别的丢失的量并给出数据类型
1.1.2

df.isnull().sum()

1.1.3

df[['Age','Cabin','Embarked']].head(3)

这里给出了很多方法,但多多益善。
2.对缺失值进行处理
2.1
查看某列的缺失值

df[df['Age']==None]=0
df.head(3

在这里插入图片描述

df[df['Age']==.isnull()]=0
df.head(3)

在这里插入图片描述

df[df['Age'] == np.nan] = 0
df.head()

这三种方法,np.nan,None以及.isnull()哪个更好
数值列读取数据后,空缺值的数据类型为float64所以用None一般索引不到,比较的时候最好用np.nan
2.2对整个表来查缺失值

pythondf.dropna().head(3)

在这里插入图片描述
关于dropna的参数
1.df.dropna()
删除至少有一个元素缺失的行
2.df.dropna(axis=’ ‘)
0, or ‘index’ 删除包含缺失值的行
1, or ‘columns’ 删除包含缺失值的列
3.df.dropna(how=’ ')
‘any’ :如果有任何NA值,删除该行或列。
‘all’ : 如果所有值都是NA,删除该行或列
4.df.dropna(thresh=2)
只保留含有两个非na值的行
5.df.dropna(subset=[‘name’, ‘toy’])
定义在那些列中寻找缺失的值

df.fillna(0).head(3)

关于fillna的参数
value:scalar, dict, Series, or DataFrame
值来填充空洞(例如0),交替使用dict/Series/DataFrame值来指定每个索引(对于Series)或列(对于DataFrame)使用哪个值。不在dict/Series/DataFrame中的值将不会被填充。此值不能为列表。

3.重复值观察与处理

df[df.duplicated()]

在这里插入图片描述
对重复值进行处理

df = df.drop_duplicates()
df.head()

特征观察与处理

1.对年龄进行分箱(离散化)处理
(1)将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示

df['AgeBand'] = pd.cut(df['Age'], 5,labels = [1,2,3,4,5])
df.head()

(2) 将连续变量Age划分为(0,5] (5,15] (15,30] (30,50] (50,80]五个年龄段,并分别用类别变量12345表示

df['AgeBand'] = pd.cut(df['Age'],[0,5,15,30,50,80],labels = [1,2,3,4,5])
df.head(3)

(3) 将连续变量Age按10% 30% 50% 70% 90%五个年龄段,并用分类变量12345表示

df['AgeBand'] = pd.qcut(df['Age'],[0,0.1,0.3,0.5,0.7,0.9],labels = [1,2,3,4,5])
df.head()

(4) 将上面的获得的数据分别进行保存,保存为csv格式

df.to_csv('test_cut.csv')

所谓的分箱处理,刚开始不太清楚,后来看到等宽分箱:每个箱中的数据宽度相同。例如,数据集中最大值是215,最小值是5,分成3个箱,故每个箱的宽度应该为(215-5)/3=70,所以箱的宽度是70,这就要求箱中数据之差不能超过70.,并且要把不超过70的数据全放在一起。所以最后的答案是:
箱一:5,10,11,13,15,35,50,55,72;
箱二:92;
箱三:204,215。
原文链接:https://blog.csdn.net/ABCisCOOL/article/details/104984747

对文本变量进行转换

#查看类别文本变量名及种类

#方法一: value_counts
df['Sex'].value_counts()

在这里插入图片描述

#方法二: unique
df['Sex'].unique()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值