PART 1:数据加载
1.1 载入数据
主要是对原数据(csv ,etc.)进行导入并处理,需要numpy和pandas这两个常用库。
1.1.1 导入numpy 和 pandas
import numpy as np
import pandas as pd
1.1.2 载入数据
# load .csv data
df = pd.read_csv('train.csv')
df.head(3)
1.1.3 每1000行为一个数据模块,逐块读取
chunker = pd.read_csv('train.csv', chunksize=1000)
一旦数据量非常大,如果一次性读取是内存是无法承担,所以我们可以通过分块读取,而参数chunksize
为设置的块数。
1.1.4 将表头改成中文,索引改为乘客ID
df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()
还可以通过先向表格中增加一行中文表头的信息,然后再删除原来英文的表头。
1.2 初步观察
导入完数据之后,我们需要对数据的一些信息进行统计从而会之后的分析做准备。
1.2.1 查看数据基本信息
df.info()
1.2.2 观察表格前10行的数据和后15行的数据
df.head(10)
df.tail(15)
1.2.4 判断数据是否为空,为空的地方返回True,其余地方返回False
df.isnull().head()
对于一个数据,还可以从这个数据是否具有异常值、是否存在噪音等。
1.3 保存数据为新的文件
df.to_csv('train_chinese.csv')
PART 2: pandas基础
2.1 知道你的数据叫什么
2.1.1 DataFrame 和 Series
import numpy as np
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
example_1 = pd.Series(sdata)
example_1
对导入的train.csv取每列项
查看"cabin"这列的所有项:
加载文件"test_1.csv",然后对比"train.csv",看看有哪些多出的列,然后将多出的列删除
经过我们的观察发现一个测试集test_1.csv有一列是多余的,我们需要将这个多余的列删去
思考:我们还可以通过drop()方法来对指定列或行进行删除:
test_1.drop(['a'],axis=1)
以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。
以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来
reset_index()作用为将df的原index_label作为新的一列留存,且列名为index,同时自动生成数字index。,如果不用这个函数,下面任务会变成:
使用loc方法将midage的数据中第100,105,108行的"Pclass",“Name"和"Sex"的数据显示出来
使用iloc方法将midage的数据中第100,105,108行的"Pclass”,"Name"和"Sex"的数据显示出来
调用 describe 函数,观察frame2的数据基本信息