第一章 数据载入及初步观察
- 第一节 数据的加载以及入门
1.1载入数据
- os.getcwd()可查看文件的位置:C:\Users\.....
- 载入数据可用相对路径和绝对路径
数据载入使用pd.read_csv(‘路径’),因为这个是.csv文件
相对路径载入:
绝对路径载入:
可用encoding=’utf-8’避免乱码;斜杠的方式可用‘/’和‘\’,但使用‘\‘时需要用r。
- 每1000行为一个数据模块,逐块读取
使用pandas处理文件时,经常会遇到大文件,有时我们只需要使用其中一 部分,这时可用逐块读取
- 将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]
header = 0 是覆盖原来的标题
1.2:初步观察
- 查看数据的基本信息
方式1.
train.info()
方式2:
train.describe()
- 观察表格前10行和后15行的数据
train.head(10)
train.tail(15)
- 判断数据是否为空,为空的地方返回True,否则返回False
train.isnull()
train.isnull().sum()可以计数空的个数
1.3保存数据
- train.to_csv(‘希望保存的文件名’,encoding=’utf-8’)
- 第二节 pandas基础
1.4 知道你的数据叫什么
- pandas中有两个数据类型DataFrame和Series,通过查找简单了解他们并自己动手写一个例子
text = {‘ct’:1.63,’fr’:1.75,’rd’:1.72}
pandas.Series(text)
text = {‘red’:[1,2,3],’black’:[3,4,5],’green’:[2,3,4]}
pandas.DataFrame(text)
- 查看DataFrame数据每列的名称
train.columns
- 查看cabin这一列的所有值
train.cabin或者train[‘cabin’]
- 删除多余的列
del train[‘a’] //删除a列
- 将‘passenger’,’name’元素隐藏
train.drop(‘passenger’,’name’,axis=1)
1.5 删选的逻辑
1. 以’age’为删选条件,删选年龄在10岁以下的乘客
train[train[‘age’]<10]
- 以’age’为删选条件,删选年龄在10岁以上,50岁以下的乘客
train[train[‘age’]>10 & train[‘age’]<50]
- 显示train的第100行中’place’和’sex’数据
train.loc([100],[’place’,’sex’])
- 使用loc方法将train的第100,105,108行的’place’,’name’,’sex’显示出来
train.loc([100,105,108],[’place’,’name’,’sex’])
- 使用iloc方法将train的第100,105,108行的’place’,’name’,’sex’显示出来
train.iloc([100,105,108],[2,3,4])
使用iloc方法时须使用列的位置(从0开始),而loc方法直接用列的名称
- 第三节 探索性数据分析
- 利用pandas对示例数据数据进行排序
使DataFrame里的某一列进行排序,要求升序排序;若想要降序则ascending=False。
frame.sort_values(by=’c’,ascending=True)
让行索引升序排序,ascending默认为True
frame.sort_index()
让列索引升序排序
frame.sort_index(axis=1)
任选两列数据同时降序排序
frame.sort_values(by=[‘a’,’b’],ascending=False)
- 对泰坦尼克号的票价和年龄两列进行综合排序(降序排列),冲这个数据中你可以分析出什么?
train.sort_values(by=[’票价’,’年龄’],ascending=False)
发现排名前20个乘客中有14个幸存,比例较大,说明这两者和是否幸存有关
对年龄进行单独分析:
train.sort_values(by=’年龄’,ascending=True)
升序排序时发现排名前20个年龄最小的乘客有14个幸存
train.sort_values(by=’年龄’,ascending=False)
降序排序时发现排名前20个年龄最大的乘客有5个幸存
说明年龄与是否存活有关,年龄越小,存活率越大;年龄越大,存活率越小。
对票价进行单独分析:
train.sort_values(by=’票价’,ascending=True)
升序排序时发现排名前20名票价最低的乘客只有一个存活
train.sort_values(by=’票价’,ascending=False)
降序排序时发现排名前20名票价最高的乘客有14个存活
说明票价与存活率有关,票价越高的乘客存活率越大,票价越低的乘客存活率越小。
- 利用pandas进行算术运算,计算两个DataFrame相加的结果
frame_1+frame_2
【提醒】两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NAN。当然,DataFrame还有很多算术运算,如减法,除法等,有兴趣的同学可以看《利用PYTHON进行数据分析》第五章 算术运算与数据对齐部分,多在网络上查找相关学习资料。
- 通过泰坦尼克号数据计算出船上最大的家族有多少人(父母小孩+兄弟姐妹)
max(train[‘堂兄弟/妹个数’]+train[‘父母与小孩个数’]
- 通过describe查看票价这一列的基本信息
train[‘票价’].describe()