您的位置:首页 > 其它

数据提取(2):pandas库入门

2017-08-31 10:59 309 查看
Pandas库
http://pandas.pydata.org Pandas是Python第三方库,提供高性能易用数据类型和分析工具。
import pandas as pd

数据类型:Series, DataFrame
基于数据类型的各类操作:基本操作、运算操作、特征类操作、关联类操作

Numpy:     基础数据类型:ndarray;                    关注数据的结构表达:维度,数据间的关系
Pandas:      扩展数据类型:Series, DataFrame;     数据的应用表达:数据与索引间的关系

一、Series类型

一个一维的带‘标签’数组
创建
Python 列表
标量值
Python字典
ndarray
其他函数,range()

import pandas as pd
#标量,不能省略index=
s = pd.Series(25, index=['a','b','c'])
s
Out[295]:
a    25
b    25
c    25
dtype: int64

#字典1
s = pd.Series({'a':8, 'b':7})
s
Out[297]:
a    8
b    7
dtype: int64
#字典2
s2 = pd.Series({'c':8, 'd':7}, index=['a','b','c','d'])
s2
Out[299]:
a    NaN
b    NaN
c    8.0
d    7.0
dtype: float64

#ndarray
n1 = pd.Series(np.arange(5))
n 1
Out[303]:
0    0
1    1
2    2
3    3
4    4
dtype: int32

n2 =pd.Series(np.arange(5), index=np.arange(9,4,-1))
n2
Out[309]:
9    0
8    1
7    2
6    3
5    4
dtype: int32

操作
.index     输出为index类型
.values     输出为ndarray类型
b
所得为数值
b[m : n]切片所得为series类
b[b > b.median()]
np.exp(b),生成series类
.get()     b.get('f', 100),提取索引为f的值,如果不存在则返回100
'*' in b     只会判断自定义索引是否在Series中     
对齐操作:Series + Series:自动对齐不同索引的数据
Series对象和索引都可以有一个名字,存在属性.name中,需要自己设置。
Series类型的修改:随时修改并即刻生效

二、DataFrame类型

一个表格型数据类型,梅列值类型可以不同
有行索引、列索引
常用于二维数据,可以表达多维数据

创建:1、ndarray:d = pd.DataFrame(np.arange(10).reshape(2,5))
          2、dict:dt = {'one':pd.Series([1,2,3],index=['a','b','c']),
                                 'two':pd.Series([9,8,7, 6],index=['a','b','c','d'])}
               d = pd.DataFrame(dt)
               pd.DataFrame(dt, index=['b','c','d'],columns=['two', 'three'])
获取:d['columnname'];     d.ix['indexname'];    d[columnname']['indexname']
操作:
.reindex(index = None, Column=None, ...)
                    重排索引:.reindex(index=['','']);重排列:.reindex(colums: ['', '', '', '']
后面的都看官方文档,不写了!

index和column都是一个Index类(不可变),常用方法:
     .append(idx)     链接另一个Index对象,产生新的Index对象
     .diff(idx)     计算差集,产生新的Index
     .intersection(idx)     计算交集
     .union(idx)     计算并集
     .delete(loc)     删除loc位置处的元素
     .insert(loc,e)     在loc位置增加一个元素e

nc = d.columns.delete(2)
ni = d.index.insert(5, 'c0')
nd = d.reindex(index=ni, columns=nc, method='ffill')

运算:
算数运算:根据行列索引,补齐(NaN)后运算,默认产生浮点数。
.add(d, **argws)     +
.sub(d, **argws)     -
.mul(d, **argws)     *
.div(d, **argws)     /
不同维度运算采用广博运算,二维一维,默认轴1参与运算,可指定axis=0
比较运算:同维度,要求尺寸相同;不同维度,广播运算

一、数据的排序
.sort_index(axis=0, ascending=True)     指定轴     根据索引排序     默认升序     
.sort_value(by, axis=0, ascending=True)     指定轴     根据数值排序     默认升序
Series.sort_value(axis=0, ascending=True )     by指定排序的行或列
NaN统一放在末尾

二、基本数据统计分析函数
.sum();     .count();     .mean()  .median();     .var()方差  .std();     .min() .max()

只适用于Series类型:
.argmin()     .argmax() 对应位置自动索引;     .idxmin()     .idxmax()对应位置的自定义索引
.describe()     针对0轴每一列,统计汇总

三、累计统计分析函数
.cumsum();     .cumprod();     .cummax();     .cummin()     按列算
滚动计算(窗口计算)函数,计算相邻w个元素
.rolling(w).sum();     .rolling(w).mean();     rolling(w).var();     rolling(w).std();     rolling(w).min() .max()

四、数据的相关分析

度量相关性:1、协方差cov(X,Y)
                    2、Pearson相关系数r:[-1,1];     |r|:0.8-1.0极强相关;0.6-0.8强相关;0.4-0.6中等程度相关;0.2-0.4弱相关;0.0-0.2极弱相关或不相关。
.cov()     计算 协方差矩阵
.corr()     计算相关系数矩阵,Pearson、Searman、Kendall等系数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: