半年前为了学习机器学习的分类模型,首次写下这篇博客泰坦尼克获救预测分析,如今为了巩固python分析基础(提醒自己基础熟练的重要性!!!),还有分享如何快速“动手学数据分析”,快速复盘这个案例。
一、数据基本操作
1.数据加载
1.1载入数据
数据集下载: https://www.kaggle.com/c/titanic/overview
1.1.1 导基本包
1.1.2 导数据
(1) 使用相对路径载入数据
(2) 使用绝对路径载入数据
也可以把地址赋给一个变量,之后引用这个变量即可。
备注:电脑是Mac系统,我得到绝对地址的方法是:把文件直接拖拽到终端里,自动会显示此文件的绝对地址。
1.1.3每1000行为一个数据模块,逐块读取文件
问题:什么是逐块读取?
答案:利用chunksize参数,来控制每次块数据的大小。它的本质就是将文本分成若干块。其实,每次进行迭代的时候还是一个DataFrame类型的数据结构。
问题:为什么要逐块读取呢?
答案:使用pandas来处理文件的时候,经常会遇到大文件,而有时候我们只想要读取其中的一部分数据,这时对文件进行逐块处理。
1.1.4将表头改为中文,索引改为乘客id
1.2初步观察
1.2.1查看数据的基本信息
1.2.2观察表格前10行的数据和后15行的数据
1.2.3判断数据是否为空,为空的地方返回True,其余地方返回False
量化一下:
1.3保存数据
将你加载并作出改变的数据,在工作目录下保存为一个新的文件train_chinese.csv
2.Pandas基础
2.1认识Pandas中两数据结构:DateFrame和Series
总结:
1、Series是一种类似于一维数组的对象。它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。Series只有行索引。
2、DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。
3、dataframe类型的每一列都是Series类型。
2.2查看数据
2.2.1加载上面保存的"train_chinese.csv"文件。
2.2.2查看数据的某列的所有项
注意:取值时用[]包含才是dataframe,否则取出来就是Series
2.2.3删除某些列
①del df[]
②df.drop([],axis = 1)
#方法一
del test_df['某一列']
#方法二
test_df.drop(['乘客ID','姓名','年龄','票价'],axis=1)
2.2数据筛选
表格数据中,最重要的一个功能就是要具有可筛选的能力,选出我所需要的信息,丢弃无用的信息。 用实战来学习pandas这个功能。
2.3.1 以‘age’为筛选条件,显示年龄在10岁以下的乘客信息
2.3.2以‘Age’为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
Ps:小心标注的符号吼!!!
2.3.3数值筛选
原本是这样的,如果想要按索引筛选,需要重置索引。
总结:loc和iloc的区别:
loc:只能通过选取行标签索引数据;
iloc:只能通过选取行位置编号索引数据。
3.探索性数据分析
3.1利用Pandas-describe()函数查看数据基本统计信息
说明:
·count : 样本数据大小
·mean : 样本数据的平均值
·std : 样本数据的标准差
·min : 样本数据的最小值
·25% : 样本数据25%的时候的值
·50% : 样本数据50%的时候的值
·75% : 样本数据75%的时候的值
·max : 样本数据的最大值
分析:
仅对于票价分析
一共有891个票价数据,
平均值约为:32.20,
标准差约为49.69,说明票价波动特别大, 25%的人的票价是低于7.91的,50%的人的票价低于14.45,75%的人的票价低于31.00, 票价最大值约为512.33,最小值为0。
3.2利用Pandas对示例数据进行排序,要求升序
代码解析:
pd.DataFrame() :创建一个DataFrame对象
np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2&#x