python——pandas库

http://pandas.pydata.org/pandas-docs/stable/api.html

目录

一、pandas简介
二、Pandas库的Series类型
三、pandas库的DataFrame类型
四、pandas库的数据类型操作
五、pandas库的数据类型运算
六、pandas的数据特征分析

一、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等系数