python数据分析之pandas学习一
链接(官网文档):点击这里
Pandas是python第三方库,提供高性能易用数据类型和分析工具。import pandas as pd
pandas基于Numpy实现,常与Numpy和Matplotlib一同使用。
Numpy | pandas(Series+dataframe) |
基础数据类型 | 扩展数据类型 |
关注数据的结构表达 | 关注数据的应用表达 |
维度:数据间关系 | 数据与索引间关系 |
一 Series类型
Series类型由一组数据及与之相关的数据索引组成。
0-3是自动索引,int64为Numpy中数据类型。
Series类型可以由如下类型创建
Python列表 /标量值/Python字典/ndarray/其它函数
1 列表已说
2 标量值(可以自定义索引)
3 字典
4 ndarray
Series类型的基本操作
1 Series类型包括index和values两部分 .index获得索引,.values获得数据
2 Series类型的操作类似于ndarray类型。自动索引和自定义索引可以同时存在,两套索引并存,但不能混用。
3 Series类型的操作类似Python字典类型(通过自定义索引访问,保留字in操作,使用.get()方法)
Series的name属性
Series对象和索引都可以有一个名字,存储在属性.name中。
Series对象可以随时修改并即刻生效。
二 DataFrame类型
DataFrame类型由共用相同索引的一组列组成。由索引(行索引:index和列索引: column)和多列数据组成。
行axis=0,列axis=1
DataFrame是一个表格型的数据类型,每列值类型可以不同。常用于表达二维数据,也可以表达多维数据。
DataFrame类型可以由以下类型创建
1)二维ndarray对象
2)由一维ndarray,列表,字典,元组或Series构成的字典
3)Series类型
4)其他的DataFrame类型
由二维ndarray对象创建
由一维ndarray对象字典创建(数据根据行列索引自动补齐)
从列表类型的字典创建
DataFrame是带标签的数组,其基本操作类似于Series,依据行列索引
三 数据类型的操作
改变Series和DataFrame对象(增加或重排:重新索引
删除:drop)
重新索引.reindex()能够改变或重排Series和DataFrame索引
.reindex(index=None,columns=None,...)的参数
参数 | 说明 |
index,columns | 新的行列自定义索引 |
fill_value | 重新索引中,用于填充缺失位置的值 |
method | 填充方法,ffill为当前值向前填充,bfill向后填充 |
limit | 最大填充量 |
copy | 默认为True,生成新的对象,False时,新旧相等不复制。 |
Series和DataFrame的索引都是Index类型,是不可修改的。
索引类型的常用方法
方法 | 说明 |
.append(idx) | 连接另一个Index对象,产生一个新的Index对象 |
.diff(idx) | 计算差集,产生新的Index对象 |
.intersection(index) | 计算交集 |
.union(index) | 计算并集 |
.delete(loc) | 删除loc位置处的元素 |
.insert(loc,e) | 在loc位置增加一个元素e |
删除指定索引对象
.drop()能够删除Series和DataFrame指定行或列索引
四 数据运算
算数运算法则
算数运算法则根据行列索引,补齐后运算,运算默认产生浮点数。补齐时缺项值填充NAN(空置)
二维和一维,一维和零维间为广播运算。采用+-*/符号进行的二元运算产生新的对象。
广播运算:不同维度之间的运算,低维的元素会作用到高维的每一个元素。
也可以使用方法形式的运算(可以增加参数)
方法 | 说明 |
.add(d,**argws) | 类型间加法运算,可选参数 |
.sub(d,**argws) | 类型间减法运算,可选参数 |
.mul(d,**argws) | 类型间乘法运算,可选参数 |
.div(d.**argws) | 类型间除法运算,可选参数 |
不同维度之间为广播运算,一维Series默认在轴1进行运算。
使用运算方法可以令一维Series参与轴0运算
。
比较运算法则(只能进行同维度运算,尺寸一致)
比较运算只能比较相同索引的元素,不进行补齐。广播运算。采用><>=<===!=等符号进行的二元运算产生布尔对象。
五:数据的特征,统计分析
一组数据表达一个或多个含义。从一组数据提取出摘要(有损地提取数据特征的过程)。
1 基本统计(含排序)
2 分布/累计统计
3 数据特征(相关性,周期性等)
4数据挖掘(形成知识)
Pandas库的数据排序
.sort_index()方法在指定轴上根据索引进行排序,默认升序。
.sort_index(axis=0,ascending=True)
.sort_values()方法在指定轴上根据数值进行排序,默认升序(NaN值同一排放在末尾)
Series.sort_values(axis=0,ascending=True)
DataFrame.sort_valies(by,axis=0,ascending=True)
by:axis轴上的某个索引或索引列表
基本统计分析函数(适用于Series和DataFrame类型)
方法 | 说明 |
.sum() | 计算数据总和,按照0轴 |
.count() | 非NaN值的数量 |
.mean() .median() | 计算数据的算数平均值,算数中位数 |
.var() .std() | 方差,标准差 |
.min() .max() |
最小/最大值 |
.argmin() .argmax() | 计算数据最大值和最小值所在位置的索引位置(自动索引) |
.idxmin() .idxmax() | 计算数据最大值,最小值所在位置的索引(自定义索引) |
.describe() | 针对0轴(各列)的统计汇总 |
累计统计分析函数(适用于Series和DataFrame类型)
方法 | 说明 |
.cumsum() | 依次给出前1,2,...n个数之和 |
.cumprod() | 依次给出前1,2,...n个数之积 |
.cummax() | 依次给出前1,2...n个数的最大值 |
.cummin() | 最小值 |
累计统计分析函数(适用于Series和DataFrame类型,滚动计算(窗口计算))
方法 | 说明 |
.rolling(w).sum() |
依次计算相邻w个元素的和 |
.rolling(w).mean() | |
.rolling(w).var() | |
.rolling(w).std() | |
.rolling(w).min() .rolling(w).max() |
相关分析(正相关,负相关,不相关)
Pearson相关系数r
r取值范围为[-1,1]
0.8-1.0 极强相关
0.6-0.8强相关
0.4-0.6中等相关程度
0.2-0.4弱相关
0-0.2极弱相关或无相关
相关分析函数(适用于Series和DataFrame类型)
方法 | 说明 |
.cov() | 计算协方差矩阵 |
.corr() | 计算相关系数矩阵(常用) |