1.第一章:数据载入及初步观察
1.1.1 载入数据
1、两种数据格式的区分及读取方式:
TSV | CSV |
---|---|
Tab-Seperated Values | Comma-Seperated Values |
利用制表符作为字段值的分隔符 | 利用半角逗号作为字段值的分隔符 |
pd.read_table(‘path’) | pd.read_csv(‘path’) |
2、pandas中用于读取数据的常用函数及参数:
import pandas as pd
pd.read_table() #读取以制表符为字段值分隔符的文件并保存于DataFrame格式中
pd.read_csv() #读取以半角逗号为字段值分隔符的文件并保存于DataFrame格式中
参数 | 说明 |
---|---|
Path | 表示文件系统位置、URL、文件型对象的字符串 |
sep | 用于对行中各字段进行拆分的字符序列或者正则表达式 |
header | 用于列名的序号,默认为0 |
names | 用于结果的列名列表,内容不能重复 |
na_values | 一组用于替换NA的值 |
chunksize | 文件块的大小 |
encoding | 用于Unicode的文本编码格式 |
usecols | 该参数可用于选择性读取特定列的信息 |
1.1.2 pandas中两种数据结构
pandas中有两种基本的数据存储数据结构,分别为Series和DataFrame。
1、Series
Series一般由序列值data、索引index、存储类型dtype、序列名字name组成,各属性可以通过句点访问。
ds = pd.Series(data=[1, 2, 3],
index=pd.Index(['num0', 'num1', 'num2'], name='idx'),
dtype='object',
name='series')
2、DataFrame
DataFrame是在Series的基础上增加了列索引。
ds = pd.DataFrame(data=[[2,3,4],[5,6,7],[8,9,10]],
columns={'col_{}'.format(i): i for i in range(3)},
index=['row1','row2','row3'])
1.1.3 替换表头的两种方法
1、利用pd.read_csv()函数中的names参数对表头进行替换
df_csv3 = pd.read_csv('./train.csv',names=['乘客ID','是否幸存','乘客等级','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口'], header=0)
2、利用DataFrame属性来修改表头名字
df_csv3 = pd.read_csv('./train.csv')#.columns=['乘客ID','是否幸存','乘客等级','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口']
df_csv3.columns=['乘客ID','是否幸存','乘客等级','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口']
1.2.1 对数据的初步观察
1、常用的汇总函数:
函数 | 作用 |
---|---|
head(n) | 返回表或序列的前n行 |
tail(n) | 返回表或序列的后n行 |
info() | 返回表的信息概况 |
describe() | 返回数值列对应的主要统计量 |
2、常用的特征统计函数
函数 | 作用 |
---|---|
quantile() | 返回分位数 |
count() | 返回非缺失值的个数 |
idxmax() | 返回最大值对应的索引 |
3、缺失数据的查看
函数 | 作用 |
---|---|
isna() | 数据缺失位置返回为True,未缺失处返回为False |
isnull() | 数据缺失位置返回为True,未缺失处返回为False |
4、两种删除特定列数据的方法
df5 = pd.read_csv('./test_1.csv')
df6 = df5.drop(labels=['a','Unnamed: 0'],axis=1,)
df6
df5 = pd.read_csv('./test_1.csv')
del df5['Unnamed: 0']
del df5['a']
5、数据排序
排序共有两种方式,一种是按值排序,一种是按索引排序,二者对应的函数分别为sort_values()、sort_index()。
对于sort_values(),函数各参数设置为:
参数 | 作用 |
---|---|
by | 指定的行数或者列数 |
axis | 为0则按列排序,为1则按行排序 |
inplace | bool,是否用排序后的数据替换现有的数据 |
ascending | bool,True则升序,为False则降序 |
对于sort_index(),函数各参数设置为:
参数 | 作用 |
---|---|
by | 指定的行数或者列数 |
axis | 为0按行排序,为1按列排序 |
ascending | True升序排列,False降序排列 |
inplace | bool,是否用排序后的数据替换现有的数据 |
1.2.2 数据筛选
表格数据中,最重要的一个功能就是要具有可筛选的能力,选出我所需要的信息,丢弃无用的信息。对于表而言,有基于元素的loc索引器与基于位置的iloc索引器
1、loc函数
loc 索引器的一般形式是loc[*, *] ,其中第一个* 代表行的选择,第二个* 代表列的选择,如果省略第二个位置写作loc[*] ,这个* 是指行的筛选。其中,* 的位置一共有五类合法对象,分别是:单个元素、元素列表、元素切片、布尔列表以及函数。
2、iloc函数
iloc 的使用与loc 完全类似,只不过是针对位置进行筛选,在相应的* 位置处一共也有五类合法对象,分别是:整数、整数列表、整数切片、布尔列表以及函数,函数的返回值必须是前面的四类合法对象中的一个,其输入同样也为DataFrame 本身。