Python数据分析真的不难学,实战来了:大佬级别数据预解决方式
发布时间:2021-06-04 20:09:10 所属栏目:大数据 来源:互联网
导读:这次我们专门挑了一份烂大街的数据集Titanic,写了一点关于数据预处理部分,但是代码风格却是大(zhuang)佬(bi)级别。很明显,我不是大佬,不过是有幸被培训过。 说到预处理,一般就是需要: 数字型缺失值处理 类别型缺失值处理 数字型标准化 类别型特征变成d
这次我们专门挑了一份烂大街的数据集Titanic,写了一点关于数据预处理部分,但是代码风格却是大(zhuang)佬(bi)级别。很明显,我不是大佬,不过是有幸被培训过。
说到预处理,一般就是需要:
数字型缺失值处理
类别型缺失值处理
数字型标准化
类别型特征变成dummy变量
Pipeline 思想
在做数据处理以及机器学习的过程中,最后你会发现每个项目似乎都存在“套路”。所有的项目处理过程都会存在一个“套路”:
预处理
建模
训练
预测
对于预处理,其实也是一个套路,不过我们不用pipeline 函数,而是另一个FeatureUnion函数。
当然一个函数也不能解决所有问题,我们通过实战来看看哪些函数以及编码风格能让我们的代码看起来很有条理并且“大(zhuang)佬(bi)”风格十足。
导入数据开启实战
今天我们分析的titanic 数据,数据我已经下载,并且放在项目路径下的data 文件中。
import pandas as pd
file = 'data/titanic_train.csv'
raw_df = pd.read_csv(file)
接下来就是标准套路:预览info以及预览head。
print(raw_df.info())
print(raw_df.head())
我们对数据集的名称进行简单的回顾:
RangeIndex: 891 entries, 0 to 890:表示891 个样本
columns :共12 列
按数据类型来划分:
int64 :
PassengerId :乘客ID
Survived:是否生存,1 为生存
Pclass :乘客级别
SibSp :sibling and spouse (兄弟姐妹以及配偶个数)Parch :parents and children(父母以及子女个数)
object:
Name: 名字
Sex:性别
Ticket :船票编号
Cabin:船舱号
Embarked:登船地点
float64:
Age:年龄
Fare 票价
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
一般的机器学习都不会预处理缺失值以及类别型数据,因此我们至少要对这两种情形做预处理。
首先我们查看缺失值,其实上文中的info已经有这样的信息。这里我们更显式的展示缺失信息。
# get null count for each columns
nulls_per_column = raw_df.isnull().sum()
print(nulls_per_column)
![]() (编辑:阿坝站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |