目录
一、pandas简介:
Pandas库:python的第三方库,提供高性能数据类型和分析工具。
简单说就是,便于操作的数据类型,很多的分析函数和分析工具;
Pandas的引用: import pandas as pd;
Pandas 库主要的两个数据类型:Series,DataFrame;
Series:相当于一维的数据类型
DataFrame:相当于二维到多维的数据类型
基于上述数据类型的各类操作:
基本操作,运算操作,特征类操作,关联类操作
Numpy pandas比较:
提供基础数据类型ndarray
拓展数据类型:Series 与 DataFrame
关注数据的结构表达
关注数据的应用表达
体现维度:数据间关系
应用表达体现在数据与索引间的关系
二、Pandas库的Series类型:
Series类型由一组数据及与之相关的数据索引组成,每个数据对应一个索引,可以自定义索引,还有一个默认索引从0开始。
一、Series类型的创建:函数pd.Series(a,index)
1、 python列表创建:
S=pd.Series( a ,index=[ ] )
a为python列表,index不可省略,len(a)==len(index) ;
2、从标量值创建:
S=pd.Series(a , index)
a为标量,index不可省略;index表达Series类型的尺寸。
3、python字典创建
S=pd.Series(a,index)
a为python字典;a中的key是索引;
如果index不省略,则从dic中挑选出其key在index列表中的键值对组成一个Series,如果index中没有元素与dic中的key对应,则该索引所对应的值为None
4、从ndarray类型创建:导入numpy与pandas
S=pd.Series(a,index)
a是ndarray类型,index 也可是ndarray类型
5、通过其他函数,如arange() 函数创建
二、Series类型的基本操作
1、Series类型包括index和values两部分。
S=nd.Series()
S.index 获得索引 返回一个索引类型
S.values 获得数据 返回一个numpy库的array类型
索引可以使用默认所以,或自定义索引,但两者不可以混合使用。
2、Seriesd类型的操作类似ndarray类型
a) 采用 [ ] 进行索引
b) numpy中运算和操作可用于Series。
c) 可以通过自定义索引的列表进行切片。
d) 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片。
3、Series类型的操作类似Python字典类型
a) 通过自定义索引访问
b) 保留字in操作 //key in dic 判断key在不在dic的键中。返回True/False
c) 使用.get( index, a )方法 //返回index对应的值,如果不存在则返回a
4、Series类型对齐操作:Series+Series
索引值相同的值进行运算,索引值不同的值不进行运算,即值等于NaN
5、Series类型的name属性:
Series对象和索引都有一个name属性,存储在.name属性;
即Series.name 与 Series.index.name 可直接赋值修改。
6、Series类型的修改
Series对象可以随时修改并即刻生效
三、理解Series类型:
Series是一维带“标签”数组。
Series基本操作类似ndarray和字典,根据索引对齐。
三、pandas库的DataFrame类型
DataFrame类型由共用相同索引的一组列组成。(例一个学号可对应一个学生的姓名,专业,年龄等)
DataFrame是一个表格型的数据类型,每列值类型可以相同也可不同
DataFrame既有行索引也有列索引,既一个带标签的二(多)维数据类型。
DataFrame常用于表达二维数据,但可以表达多维数据。
1、DataFrame类型的创建:
a) 从二维ndarray对象创建:
d=pd.DataFrame( a )
其中a为ndarray对象,自动生成
b) 有一维ndarrray对象字典创建:
d=pd.DataFrame( )
c) 从列表类型的字典创建
四、pandas库的数据类型操作
1、改变Series和DataFrame对象(增加、重排索引或删除部分值)
a) 重新索引
.reindex(index=None,columns=Nonem....)
参数
说明
index,columns
新的行列自定义索引
fill_value
重新索引中,用于填充缺失位置的值
method
填充方法,ffill当前值向前填充
limit
最大填充量
copy
默认True,生成新的对象,False,新旧相等不赋值
b) 索引类型的常用方法
方法
说明
.append(idx)
连接另一个index对象,产生新的Index对象
.diff(idx)
计算差集,产生新的Index对象
.interesection(idx)
计算交集
.union(idx)
计算并集
.delete(loc)
删除loc位置处的元素
.insert( loc,e )
在loc位置增加一个元素
c) 删除指定索引对象
.drop()能够删除Series和DataFrame指定行或列索引
五、pandas库的数据类型运算
1、算术运算法则
算术运算根据行列索引,补齐后运算(相同索引才进行运算),运算默认产生浮点数。
补齐时缺项填充NaN(空值)
二维和一维、一维和零维间为广播运算。
采用 + - * / 符号进行的二元运算会产生新的对象
2、 四则法则运算方法形式(除了用+-*/,还可用其方法)
.add( d, **argws )
类型间加法运算,可选参数
.sub( d, **argws)
类型间减法运算,可选参数
.mul( d, **argws)
类型间的乘法运算,可选参数
.div(d, **argws)
类型间除法运算,可选参数
六、pandas的数据特征分析
1、数据的排序
a) .sort_index()方法:在指定轴上根据索引进行排序,默认升序。
.sort_index(axis=0, ascending=True )
b) .sort_values()方法:在指定轴上根据数值进行排序,默认升序。
Series.sort_values(axis=0, ascending=True)
Series.sort_values( by ,axis=0, ascending=True ) by:axis轴上的某个索引或索引列表。
注意:NaN值统一放在最后面
2、数据的基本统计分析
a) 基本的统计分析函数(适用于Series和DataFrame类型)
方法
说明
.sum()
计算数据的总和,按0轴
.count()
非NaN值的数量
.mean() .median()
计算数据的算术平均值、算术中位数
.var() .std()
计算数据的方差、标准差
.min() .max()
计算数据的最小值、最大值
.argmin() .argmax()
计算数据最大值、最小值所在位置的索引位置(自动索引)
.idxmin() .idxmax()
计算数据最大值、最小值所在位置的索引(自定义索引)
.describe()
针对(0轴)各列的统计汇总,返回一个Series类型,其中有sum,median 等
3、数据的累计统计分析
数据的累计统计分析:对前 1 - n 个数进行累计运算
a) 累计统计分析函数:适用于Series和DataFrame类型
方法
说明
.cumsum()
依次给出前1、2、...、n个数的和
.cumprod()
依次给出前1、2、...、n个数的积
.cummax()
依次给出前1、2、...、n个数的最大值
.cummin()
依次给出前1、2、...、n个数的最小值
b) 适用于Series和DataFrame类型,滚动计算窗口(窗口计算)
方法
说明
.rolling(w).sum()
依次计算相邻w个元素的和
.rolling(w).mean()
依次计算相邻w个元素的算术平均值
.rolling(w).var()
依次计算相邻w个元素的方差
.rolling(w).std()
依次计算相邻w个元素的标准差
.rolling(w).min() /.rolling(w).max()
依次计算相邻w个元素的最大值和最小值
4、数据的相关分析
两个变量相关性度量:协方差(相对不精确),Pearson相关系数:
相关分析函数:
方法
说明
.cov()
计算协方差矩阵
.corr()
计算相关系数矩阵,Pearson、Spearman、Kendall等系数