Task 1:数据载入及初步观察_笔记
1、读取和保存文件
读取:可用with open()的方法,也可用pd.read_csv()
保存:可用pd.to_csv()
shares.to_csv('titanic/train_chinese.csv')
1.1相对路径/绝对路径
相对路径:
①当要导入的文件在和当前文件在同一个目录下时,直接导入这个文件名。
②当要导入的文件或者目录和当前文件不同目录时,需要跳到这个要导入文件的父级目录,然后一级一级的用点号连接走过的目录或者文件。
1.2 read_csv()的参数使用
逐块读取用chunksize参数
import pandas as pd
shares = pd.read_csv('titanic/train.csv',sep=',',encoding='utf-8',chunksize=10)
for share in shares:
print (share)
改表头改索引
import pandas as pd
shares = pd.read_csv('titanic/train.csv',sep=',',encoding='utf-8',header=0,index_col=['乘客ID'],names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口'])
shares
查看数据信息/观察前几行后几行/是否NULL
import pandas as pd
shares = pd.read_csv('titanic/train.csv',sep=',',encoding='utf-8',header=0,index_col=['乘客ID'],names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)', '乘客姓名','性别','年龄','堂兄弟/妹个数', '父母与小孩个数','船票信息','票价','客舱','登船港口'])
a=shares.head(6)
b=shares.isnull().tail(3)
c=shares.info()
d=shares.tail(7)
a,b,c,d
2、Pandas两常用数据结构(Series和Dataframe)
Series 就如同列表一样,一系列数据,每个数据对应一个索引值。
Series 就是“竖起来”的 list
DataFrame 是一种二维的数据结构,它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index,可以通过 columns 和 index 来确定一个主句的位置。
2.1 Series的构建与使用
import pandas as pd
a=['sun','flower','river']
pd.Series(a)
2.2DataFrame的构建与使用
2.2.1 DataFrame的构建
import pandas as pd
import numpy as np
dic={'name':['小明','小红','小芳'],'class':['math','chinese','english'],'score':[98,87,97]}
a=pd.DataFrame(dic,index=list('123'))
print(a)
2.2.2 DataFrame的使用
1)DataFrame数据的查看,元素,列行获取
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv',nrows=5)
a=dep['乘客姓名'].values
print('所有乘客姓名:\n',a,'\n')
print('index查看行名:\n',dep.index,'\n')
print('columns查看列名:\n',dep.columns,'\n')
2)DataFrame 列行删除
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/test.csv',nrows=5)
a=dep.drop(columns=['Cabin'],inplace=False)#inplace=False时不会替换原有对象
b=dep.drop(columns=['Cabin'],inplace=True)#inplace=True时是真删除
b=dep.drop(columns=['Cabin'],axis=1)
del dep['Parch']#也可直接del删除列
dep
注意:凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace参数。如果手动设定为True(默认为False),那么原数组直接就被替换。也就是说,采用inplace=True之后,原数组名对应的内存值直接改变;
而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置。
3)Dataframe 条件筛选
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train.csv',nrows=100)
a=dep[dep['Age']<=10]
b=dep[(dep['Age']<=10)|(dep['Age']>60)] # \表示并集
midage=dep[(dep['Age']>10)&(dep['Age']<=60)] # &表示 交集
midage.head(7)
注意多个条件要加括号后在&或|。
4)Dataframe 的排序
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv')
a=dep.sort_values(by=['票价','年龄'],ascending=False)# 先后按照 "票价"和"年龄"来降序排列
b=dep.sort_values(by='票价',ascending=True)# 按照 "票价"来升序排列
c=dep.sort_index(ascending=False)# sort_index()对行索引 降序排列
d=dep.sort_index(axis=1,ascending=False)# sort_index(axis=1)对列索引 降序排列
5)查看基本统计信息
import pandas as pd
import numpy as np
dep=pd.read_csv('titanic/train_chinese.csv')
dep.describe()