一、数据加载
1.1载入数据
数据集下载 https://www.kaggle.com/c/titanic/overview,以泰坦尼克号的表格为例,通过实战学习使用。
1.1.1导入pandas和numpy
Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Numpy 中包含了一些函数用于处理数组。
import pandas as pd
import numpy as np
1.1.2载入数据
可使用相对路径和绝对路径载入文件。
相对路径:
df = pd.read_csv('train.csv')
df.head(3)
绝对路径:
df = pd.read_csv('/Users/chenandong/Documents/datawhale数据分析每个人题目设计/招募阶段/第一单元项目集合/train.csv')
df.head(3)
提示:当使用相对路径报错时,可查看当前的工作目录。成功载入文件后,会显示文件的前三行。
1.1.3每1000个行为为一个数据模块,逐块读取
chunker = pd.read_csv('train.csv', chunksize=1000)
采用逐块读取文件的主要目的是防止文件过大,一次性加载到内存,会让内存爆掉,或者内存一次性无法加载这么多。
1.1.4将表头改为中文
df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()
()里为空时会读取前五行。
1.2初步观察
2.2.1查看数据的基本信息
df.info()
2.2.2观察表格的前十行和后十五行
前十行:
df.head(10)
后十五行:
df.tail(15)
2.2.3判断数据是否为空,空返回true,其余返回false
df.insull().head()
会显示前五行的。
1.3保存数据
将做出改变的数据进行保存。
df.to_csv('train_chinese.csv')
1.4知道我们的数据是什么
1.4.1载入文件
df = pd.read_csv('train.csv')
df.head(3)
1.4.2查看每列数据的名称
df.columns
1.4.3查看“Cabin”这列的所有值
法一:
df['Cabin'].head(3)
法二:
df.Cabin.head(3)
1.4.4加载文件test_1.csv并与train.csv做对比,看看有哪些多余的列,并将这些列删除。
test_1 = pd.read_csv('test_1.csv')
test_1.head(3)
通过观察,发现有一列多余。
del test_1['a']
test_1.head(3)
1.4.5隐藏几列元素
df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)
1.5筛选的逻辑
1.5.1按照年龄小于十来筛选
df[df["Age"]<10].head(3)
1.5.2以“Age”为条件,将年龄在十以上五十以下的信息显示出看来,并将这个数据命名为midage。
midage = df[(df["Age"]>10)& (df["Age"]<50)]
midage.head(3)
1.5.3将midage中的数据中的第一百行的“Pclass”和“Sex”显示出来。
midage = midage.reset_index(drop=True)
midage.head(3)
1.5.4将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来
loc方法:
midage.loc[[100,105,108],['Pclass','Name','Sex']]
iloc方法:
midage.iloc[[100,105,108],[2,3,4]]
二、探索性数据分析
在开始之前也要将pandas和numpy导入。
2.1利用pandas对示例数据进行排序
升序:
#自己构建一个都为数字的DataFrame数据
frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
index=['2', '1'],
columns=['d', 'a', 'b', 'c'])
frame
# 大多数时候我们都是想根据列的值来排序,所以,将你构建的DataFrame中的数据根据某一列,升序排列
frame.sort_values(by='c', ascending=True)
让行索引升序排序:
frame.sort_index()
让列索引升序排序:
frame.sort_index(axis=1)
降序排序:
frame.sort_index(axis=1, ascending=False)
2.2利用pandas进行算术计算
#建立一个例子
frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),
columns=['a', 'b', 'c'],
index=['one', 'two', 'three'])
frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),
columns=['a', 'e', 'c'],
index=['first', 'one', 'two', 'second'])
frame1_a
三、总结
本节中我们通过Pandas的一些内置函数对数据进行了初步统计查看,要看懂函数中得出的数据。