复习:这门课程得主要目的是通过真实的数据,以实战的方式了解数据分析的流程和熟悉数据分析python的基本操作。知道了课程的目的之后,我们接下来我们要正式的开始数据分析的实战教学,完成kaggle上泰坦尼克的任务,实战数据分析全流程。
这里有两份资料:
教材《Python for Data Analysis》和 baidu.com &
google.com(善用搜索引擎)

1 第一章:数据载入及初步观察

1.1 载入数据

数据集下载 https://www.kaggle.com/c/titanic/overview

1.1.1 任务一:导入numpy和pandas

写入代码
import pandas as pd
import numpy as np

【提示】如果加载失败,学会如何在你的python环境下安装numpy和pandas这两个库

1.1.2 任务二:载入数据

(1) 使用相对路径载入数据
(2) 使用绝对路径载入数据

(1) 使用相对路径载入数据

写入代码
import os
os.getcwd()

df= pd.read_csv(‘train.csv’) #赋值

df.head() #查看前5行

df.tail() #查看后5行(默认),如看后10行,在()内填写10 即可。如:df.tail(10)

‘’’前:行数,后:列数 shape:形状!’’’
df.shape

绝对路径

ph=os.path.abspath(‘train.csv’)
ph
pd.read_csv(ph)

pd.read_csv(‘D:\juptyer\dataanalyze\hands-on-data-analysis-master\first\train.csv’)

写入代码
pd.read_table(ph)

‘’’read_table 以\t为分隔符’’’
pd.read_table(ph,sep=’,’)

【提示】相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录。
【思考】知道数据加载的方法后,试试pd.read_csv()和pd.read_table()的不同,如果想让他们效果一样,需要怎么做?了解一下’.tsv’和’.csv’的不同,如何加载这两个数据集?
【总结】加载的数据是所有工作的第一步,我们的工作会接触到不同的数据格式(eg:.csv;.tsv;.xlsx),但是加载的方法和思路都是一样的,在以后工作和做项目的过程中,遇到之前没有碰到的问题,要多多查资料吗,使用googel,了解业务逻辑,明白输入和输出是什么。

1.1.3 任务三:每1000行为一个数据模块,逐块读取

写入代码
df= pd.read_csv(‘train.csv’ , chunksize=100) #赋值
dff= pd.read_csv(‘train.csv’)
type (df)

type (dff)

df.get_chunk()

【思考】什么是逐块读取?为什么要逐块读取呢?

【提示】大家可以chunker(数据块)是什么类型?用for循环打印出来出处具体的样子是什么?

1.1.4 任务四:将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]

PassengerId => 乘客ID
Survived => 是否幸存
Pclass => 乘客等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口

写入代码
df= pd.read_csv(‘train.csv’)
df.columns=[‘乘客ID’,’是否幸存’,’乘客等级(1/2/3等舱位)’,’乘客姓名’,’性别’,’年龄’,’堂兄弟/妹个数’,’父母与小孩个数’,’船票信息’,’票价’,’客舱’,’登船港口’]
df

【思考】所谓将表头改为中文其中一个思路是:将英文列名表头替换成中文。还有其他的方法吗?

df= pd.read_csv(‘train.csv’,names=[‘乘客ID’,’是否幸存’,’乘客等级(1/2/3等舱位)’,’乘客姓名’,’性别’,’年龄’,’堂兄弟/妹个数’,’父母与小孩个数’,’船票信息’,’票价’,’客舱’,’登船港口’])
#df

1.2 初步观察

导入数据后,你可能要对数据的整体结构和样例进行概览,比如说,数据大小、有多少列,各列都是什么格式的,是否包含null等

1.2.1 任务一:查看数据的基本信息

写入代码
#df= pd.read_csv(‘train.csv’)
df.info()

df.describe()

【提示】有多个函数可以这样做,你可以做一下总结

1.2.2 任务二:观察表格前10行的数据和后15行的数据

写入代码
#df= pd.read_csv(‘train.csv’)
df.head(10)

写入代码
df.tail(15)

df.tail(15).shape

1.2.4 任务三:判断数据是否为空,为空的地方返回True,其余地方返回False

写入代码
df.isnull()

【总结】上面的操作都是数据分析中对于数据本身的观察

【思考】对于一个数据,还可以从哪些方面来观察?找找答案,这个将对下面的数据分析有很大的帮助

1.3 保存数据

1.3.1 任务一:将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv

写入代码

注意:不同的操作系统保存下来可能会有乱码。大家可以加入encoding='GBK' 或者 ’encoding = ’utf-8‘‘

df.to_csv(‘train_chinese_20211116.csv’,encoding =’utf-8’)

【总结】数据的加载以及入门,接下来就要接触数据本身的运算,我们将主要掌握numpy和pandas在工作和项目场景的运用。