数据分析task02

本文介绍了数据分析中数据清洗的步骤,包括缺失值处理、重复值检查与处理,以及特征的观察与处理。针对数值型和文本型特征,分别进行了分箱和One-Hot编码,以使数据适用于建模分析。利用pandas库中的方法如cut和str.extract进行操作,通过正则表达式提取关键信息。
摘要由CSDN通过智能技术生成

一 数据清洗及特征处理

原始数据通常有缺失值及异常点等,因此需要先进行清洗才能使用。

任务一:缺失值观察

 任务二:对缺失值进行处理

df.fillna({'Age':0})
df # 本身是没有变的

df.loc[df['Age'].isnull(),'Age'] = 0 # Age哪一行是空就补哪一行的Age为0
df.isnull().sum()

重复值观察与处理

任务一:查看重复值

表示没有重复值 

 任务二:对重复值进行处理

 特征观察与处理

我们对特征进行一下观察,可以把特征大概分为两大类:
数值型特征:Survived ,Pclass, Age ,SibSp, Parch, Fare,其中Survived, Pclass为离散型数值特征,Age,SibSp, Parch, Fare为连续型数值特征,一般可以直接用于模型训练。
文本型特征:Name, Sex, Cabin,Embarked, Ticket,其中Sex, Cabin, Embarked, Ticket为类别型文本特征,往往需要转化成数值型才能用于建模分析。

任务一:对年龄进行分箱处理

pandas.cut

分箱的好处是可以处理个别异常值。

 

#将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示
df['AgeBand'] = pd.cut(df['Age'], 5,labels = [1,2,3,4,5])
#将连续变量Age划分为(0,5] (5,15] (15,30] (30,50] (50,80]五个年龄段,并分别用类别变量12345表示
df['AgeBand'] = pd.cut(df['Age'],[0,5,15,30,50,80],right= False, labels = [1,2,3,4,5])
#将连续变量Age按10% 30% 50 70% 90%五个年龄段,并用分类变量12345表示
df1['AgeBand'] = pd.qcut(df['Age'],[0,0.1,0.3,0.5,0.7,0.9],duplicates = 'drop',labels = [1,2,3,4])

任务二:对文本变量进行转换

 

 

 

 

#将类别文本转换为one-hot编码

for feat in ["Age", "Embarked"]:
    x = pd.get_dummies(df[feat], prefix=feat)
    df = pd.concat([df, x], axis=1)

#concat 合成
知识点:
One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

实现方式:手动One Hot编码,sklearn,keras。

#从纯文本Name特征里提取出Titles的特征

pandas.Series.str.extract

df['Title'] = df.Name.str.extract('([A-Za-z]+)\.', expand=False)

 

此处复习正则表达式


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值