探索性数据分析
本文记录2022年3月组队学习-动手学数据分析教程知识点,采用kaggle上泰坦尼克的任务,实战数据分析全流程。
教程内容开源地址:
github
: https://github.com/datawhalechina/hands-on-data-analysis
gitee
:https://gitee.com/datawhalechina/hands-on-data-analysis
1 第一章:数据载入及初步观察
数据集下载 https://www.kaggle.com/c/titanic/overview
1.1 导库
本次主要使用python的Pandas
库,numpy
库对结构化数据进行探索性研究。
import numpy as np
import pandas as pd
1.2 载入数据
知识点:
- 相对路径与绝对路径
相对路径
: 相对于当前文件的路径 注意./与…/区别 前者表示当前文件夹 后者表示上一级文件夹。绝对路径
: 当前文件在磁盘上真正存在的位置 。
一般使用相对路径避免因为文件位置变化而引起配置路径出现问题,需要注意绝对路径的划分符为"/"
。
- pandas读取数据函数read_csv与read_table
pandas
中读取数据函数为read开头,例如read_csv
与read_table
,read_csv
是pandas中读取以","
进行划分的数据,返回为DataFrame
表格类型结构。read_table
可以读取以制表符"\t"
进行划分的数据集,因此可以读取".tsv"结尾数据集等等。
二者本质没有较大区别,因划分符的不同而作用于不同的数据集,但我们可以通过指定str
参数指定当前数据集的划分符。
# 使用相对路径载入数据
train_data = pd.read_csv("train.csv")
test_data = pd.read_csv("test_1.csv")
# python自带库函数os 可以查询当前文件在系统中的绝对路径
import os
os.getcwd()
# 'E:\\python参考\\hands-on-data-analysis-master (1)\\hands-on-data-analysis-master\\第一单元项目集合'
# 使用绝对路径载入数据
train_data = pd.read_csv("E:/python参考/hands-on-data-analysis-master (1)/hands-on-data-analysis-master/第一单元项目集合/train.csv")
test_data = pd.read_csv("E:/python参考/hands-on-data-analysis-master (1)/hands-on-data-analysis-master/第一单元项目集合/test_1.csv")
# 指定划分符为","
pd.read_table("train.csv", ",")
- 大型数据集处理方法,设置
chunksize
参数
- 当遇到文件过大,导致内存不足时,可以先把整个文件拆分成小块(
chunk
), 一个chunk就是我们数据的一个小组.通过chunksize
参数可以指定我们迭代块的大小, 也可以通过设置iterator
参数(默认为False
)为True
后,通过迭代对象的get_chunk
方法迭代获得任意行。 chunk
块为dataframe
类型,每次for
循环输出就是chunk
大小的dataframe
表格。- 分块读取可以减少每次处理数据集的大小,加快运算时间,避免数据集过大无法读取或者读取过慢。
chunk = pd.read_csv("train.csv", chunksize=1000)
printg(chunk)
# <pandas.io.parsers.TextFileReader at 0x1538e1e33c8> 获得是一个可迭代对象 大小为chunksize值
for temp in chunk