发布时间:2024-03-25 13:01
数据集下载地址:Titanic - Machine Learning from Disaster | Kaggle
目录
DataWhale课程地址:datawhalechina/hands-on-data-analysis: 动手学数据分析以项目为主线,知识点孕育其中,通过边学、边做、边引导来得到更好的学习效果 (github.com)
写在前面:DataWhale使用jupyter形式,笔者使用Pycharm使用的代码形式。
目录
1.数据加载
1.1数据载入及初步观察
任务一:导入numpy和pandas
任务二:载入数据
任务三:每1000行为一个数据模块,逐块读取
任务四:将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]
任务五:查看数据的基本信息,观察表格前10行的数据和后15行的数据
任务六:判断数据是否为空,为空的地方返回True,其余地方返回False
任务七:将加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv
1.2Pandas基础
任务一:pandas中有两个数据类型DateFrame和Series,通过查找简单了解他们。
任务二:载入"train.csv"文件并进行一些操作
任务三:筛选的逻辑
1.3探索性数据分析
任务一:利用Pandas对示例数据进行排序,要求升序
任务二:对泰坦尼克号数据(trian.csv)按票价和年龄两列进行综合排序
任务三:利用Pandas进行算术计算,计算两个DataFrame数据相加结果
任务四:通过泰坦尼克号数据如何计算出在船上最大的家族有多少人
任务五:使用Pandas describe()函数查看数据基本统计信息
2.数据清洗及特征处理
2.1 缺失值观察与处理
任务一:缺失值观察
任务二:对缺失值进行处理
2.2 重复值观察与处理
任务一:请查看数据中的重复值
判断重复值-duplicated()
任务二:对重复值进行处理
删除重复值-drop_duplicates()
2.3 特征观察与处理
任务一:对年龄进行分箱(离散化)处理
¶参考链接
pd.cut()
任务二:对文本变量进行转换
Pandas.get_dummies Pandas 中的 get_dummies 方法主要用于对类别型特征做 One-Hot 编码(独热编码)。
任务三:从纯文本Name特征里提取出Titles的特征(所谓的Titles就是Mr,Miss,Mrs等)
2.4 数据的合并
任务一:将data文件夹里面的所有数据都载入,与之前的原始数据相比,观察他们的之间的关系
任务二:使用concat方法:将数据train-left-up.csv和train-right-up.csv横向合并为一张表,并保存这张表为result_up
任务三:使用concat方法:将train-left-down和train-right-down横向合并为一张表,并保存这张表为result_down。
pd.concat()函数简介
任务四:使用DataFrame自带的方法join方法和append:完成任务二和任务三的任务
使用Panads的merge方法和DataFrame的append方法:完成任务二和任务三的任务
2.5 换一种角度看数据
2.6 数据运用
#导入numpy和pandas
import numpy as np
import pandas as pd
安装numpy和pandas: pip install numpy pandas
#载入数据
df = pd.read_csv('train.csv')#已将文件放在工程目录下
#df = pd.read_csv('../train.csv')#绝对路径格式
print(df.head(3))#输出数据的前三行以判断数据是否成功导入
思考:read_csv与read_table 的区别
read_csv和read_table都是是加载带分隔符的数据,每一个分隔符作为一个数据的标志,但二者读出来的数据格式还是不一样的:read_table是以制表符 \t 作为数据的标志,也就是以行为单位进行存储,每一行字符串为一列而不是每一个字符串;read_csv每一个字符串为一列。
如果想让他们效果一样,需要怎么做?
# 调用read_table函数读取文件 data = pd.read_table("../data.txt,sep=','")
# 调用read_csv函数读取文件 df = pd.read_csv("../data.txt")
思考:TSV文件与CSV文件的区别与读取/生成
- TSV与CSV的区别: 1)从名称上即可知道,TSV是用制表符(Tab,'\t')作为字段值的分隔符;CSV是用半角逗号(',')作为字段值的分隔符; 2)IANA规定的标准TSV格式,字段值之中是不允许出现制表符的。
- Python对TSV文件的支持: Python的csv模块准确的讲应该叫做dsv模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。 delimiter参数值默认为半角逗号,即默认将被处理文件视为CSV。 当delimiter='\t'时,被处理文件就是TSV。
- 参考链接