本学习笔记为阿里云天池龙珠计划Docker训练营的学习内容,学习链接为:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.20850282.J_3678908510.4.f2984d57kkoL2y&postId=170949
一、学习知识点概要
本次知识点主要讲的如何对数据整体概况进行分析,包括数据集的基本情况,了解变量间的相互关系、变量与预测值之间的存在关系。
二、学习内容
- 数据总体了解:
- 读取数据集并了解数据集大小,原始特征维度;
- 通过info熟悉数据类型;
- 粗略查看数据集中各特征基本统计量;
- 缺失值和唯一值:
- 查看数据缺失值情况
- 查看唯一值特征情况
- 深入数据-查看数据类型
- 类别型数据
- 数值型数据
- 离散数值型数据
- 连续数值型数据
- 数据间相关关系
- 特征和特征之间关系
- 特征和目标变量之间关系
- 用pandas_profiling生成数据报告
2.3.1导入数据分析及可视化过程需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import warnings
warnings.filterwarnings('ignore')
以上库都是用pip install安装
2.3.2读取文件
data_train = pd.read_csv('train.csv')
data_test_a = pd.read_csv('testA.csv')
2.3.2.1读取文件的拓展知识
- pandas读取数据时相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录。
- TSV与CSV的区别:
- 从名称上即可知道,TSV是用制表符(Tab,'\t')作为字段值的分隔符;CSV是用半角逗号(',')作为字段值的分隔符;
- Python对TSV文件的支持: Python的csv模块准确的讲应该叫做dsv模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。 delimiter参数值默认为半角逗号,即默认将被处理文件视为CSV。当delimiter='\t'时,被处理文件就是TSV。
- 读取文件的部分(适用于文件特别大的场景)
- 通过nrows参数,来设置读取文件的前多少行,nrows是一个大于等于0的整数。
- 分块读取
data_train_sample = pd.read_csv("train.csv",nrows=5)
通过info()来熟悉数据类型
data_train.info()
总体粗略的查看数据集各个特征的一些基本统计量
data_train.describe()
2.3.4查看数据集中特征缺失值,唯一值等
查看缺失值
print(f'There are {data_train.isnull().any().sum()} columns in train dataest with missing values.')
具体查看缺失特征及缺失率
missing = data_train.isnull().sum()/len(data_train)
missing = missing[missing > 0]
missing.sort_values(inplace=TRUE)
missing.plot.bar()
2.3.5用pandas_profiling生成数据报告
import pandas_profiling
pfr = pandas_profiling.ProfileReport(data_train)
pfr.to_file("./example.html")
三、学习问题与解答
代码太难了,难到不知道要从何开始问,还在努力学习中,加油!
四、学习思考与总结
我了解到了EDA的重要性,知道了需要借助于各个简单的统计量来对数据整体的了解,分析各个类型变量相互之间的关系,以及用合适的图形可视化出来直观观察。学到了如何对数据整体概况进行分析,包括数据集的基本情况,了解变量间的相互关系、变量与预测值之间的存在关系,但是对代码的理解还是有点难,会更加努力学习的!