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)
把数据按分块进行读取,就需要设置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)
将数据分块读取的好处是可以减少内存的占用
有时候我们读取到的数据表头语言不多,或者需要修改表头的描述,以便后续的分析,我们可以参考这个函数:pandas.DataFrame.rename()
train = train.rename(
columns={'PassengerId' : '乘客ID',
'Survived' : '是否幸存',
'Pclass' : '乘客等级(1/2/3等舱位)',
'Name' : '乘客姓名',
'Sex' : '性别',
'Age' : '年龄',
'SibSp' : '堂兄弟/妹个数',
'Parch' : '父母与小孩个数',
'Ticket' : '船票信息',
'Fare' : '票价',
'Cabin' : '客舱',
'Embarked' : '登船港口'
})
train.info() #打印摘要
train.describe() # 描述性统计信息
train.head(15)
train.tail(10)
官方指南:DataFrame.head()
DataFrame.tail()
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
pandas教程:series和dataframe
series结构有索引,和列名组成,如果没有,那么程序会自动赋名为None
series的索引名具有唯一性,索引可以数字和字符,系统会自动将他们转化为一个类型object
dataframe由索引和列名组成,索引不具有唯一性,列名也不具有唯一性
要查看列的名称,我们可以把列的名称转换成列表一起显示出来,相关函数 : pandas.series.tolist()
DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False)
labels=列表或者单个标签,axis=0表示删除行,axis=1表示删除列, inplace=False只是隐藏,inplace=True表示删除
Pandas-筛选数据
官方指南:
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为升序,反之,为降序
pandas汇总计算和描述统计
Pandas:表计算和数据分析