一、载入数据
1.1 导入库和数据文件
import numpy as np
import pandas as pd
import os
导入数据文件的方法一般分为两种:
(1) 使用相对路径载入数据
train = pd.read_csv("../data/train.csv") # ./data/train.csv表示当前文件夹下的子文件夹data里的csv文件
# train = pd.read_csv("../data/train.csv")# ../data/train.csv表示当期文件夹的父文件夹的子文件夹data里的csv文件
(2) 使用绝对路径载入数据
file_path = os.path.join(os.path.dirname(__file__) + '/../data/train.csv')
train = pd.read_csv(file_path)
1.2 分块读取(每1000行为一个数据模块)
把数据按分块进行读取,就需要设置pandas.read_csv()函数的参数chunter,具体可以官方文档:pandas.read_csv
chunker_train = pd.read_csv('train.csv', chunksize = 1000)
for item in chunker_train:
print(type(item))
print(item)
将数据分块读取的好处是可以减少内存的占用
1.3 将修改表头
有时候我们读取到的数据表头语言不多,或者需要修改表头的描述,以便后续的分析,我们可以参考这个函数:pandas.DataFrame.rename()
train = train.rename(
columns={
'PassengerId' : '乘客ID',
'Survived' : '是否幸存',
'Pclass' : '乘客等级(1/2/3等舱位)',
'Name' : '乘客姓名',
'Sex' : '性别',
'Age' : '年龄',
'SibSp' : '堂兄弟/妹个数',
'Parch' : '父母与小孩个数',
'Ticket' : '船票信息',
'Fare' : '票价',
'Cabin' : '客舱',
'Embarked' : '登船港口'
})
二、初步观察
2.1 查看数据的基本信息
train.info() #打印摘要
train.describe() # 描述性统计信息
2.2 观察表格前15行后10行的数据
train.head(15)
train.tail(10)
官方指南:DataFrame.head()
DataFrame.tail()
2.3 判断数据是否为空
train.isnull() # 数据为None或者numpy.NaN返回True,不为空则返回False,如果数据为空字符''或numpy.inf,不返回True
train.isna() # 数据为None或者numpy.NaN返回True,不为空则返回False,如果数据为空字符''或numpy.inf,不返回True
官方指南:DataFrame.isnull()
DataFrame.isna()
三、保存数据
pandas保存数据的函数有很多,这里我们使用pandas.DataFrame.to_csv():
保存其它格式文件的函数:to_json, to_html
四、知道你的数据叫什么
4.1 pd.Series和pd.DataFrame
pandas教程:series和dataframe
series结构有索引,和列名组成,如果没有,那么程序会自动赋名为None
series的索引名具有唯一性,索引可以数字和字符,系统会自动将他们转化为一个类型object
dataframe由索引和列名组成,索引不具有唯一性,列名也不具有唯一性
4.2 查看DataFrame每列的名称
要查看列的名称,我们可以把列的名称转换成列表一起显示出来,相关函数 : pandas.series.tolist()
4.3 隐藏或删除DataFrame的元素
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
labels=列表或者单个标签,axis=0表示删除行,axis=1表示删除列, inplace=False只是隐藏,inplace=True表示删除
五、筛选的逻辑
5.1 对DataFrame数据进行条件筛选
5.2 使用loc和iloc显示部分数据
官方指南:
pandas.DataFrame.loc
pandas.DataFrame.iloc
#df.iloc只能使用索引值,不能用列名标签
midage.loc[[100, 105, 108], ['Pclass', 'Name', 'Sex']]
midage.iloc[[100, 105, 108], [2, 3, 4]]
六、了解你的数据吗?
DataFrame.sort_values()
DataFrame.sort_index()
其中ascending=True为升序,反之,为降序