Pandas相关内容
本文最后更新于:4 年前
是Pandas鸭!
Series类型:(一维数据类型)
- 一组数据和其索引构成: - import pandas as pd b = pd.Series([9,8,7,6],index=['a','b','c','d'])
- index为自定义索引 
- 如果不定义index的话系统会自动从0开始帮你定义 
 
- 创建: - 从标量值创建(要给个index,对应的是同一个标量) 
- 从字典类型创建(直接传递给Series就好了) - 也可以重新给一个index, index与字典中的key相匹配,多余的赋值为NaN(None)
 - 可以看作index从字典中挑选相关的元素来构造了一个index的Series类型 
- 列表(上面就是例子) 
- ndarray(这个也可以,只要你构造好) 
- 其他函数 
 
- 基本操作: - .index获得索引
- .values获得数据
- 索引有两个:默认的为从零开始的自动索引,另一个是你定义的索引,都可以使用,但是不能够混用。
- 其余特点:- 索引方式都是用【】
- numpy中运算和操作可作用于Series类型
- 可以通过自定义索引的列表进行切片。
- 自动索引和自定义索引会一同被切片
 
- 对于Series类型的处Series理得到的都是Series类型,本质上是对于value进行处理,不改变index的对应关系
- 可以使用字典中的 in / .get(index) / .
 
- 对齐问题: - Series + Series
- 在两个索引中都存在的,value相加,只有一个存在,则index对应的值为NaN
 
- name属性: - series的对象和索引都可以有一个名字,名字存在.name和.index.name中
 
- Series对象可以随时修改并且立即生效 
- Series本质是一维带“标签”的数组,操作时根据索引对齐。 
DataFrame类型:(二维数据类型)
- 索引+多列数据(index+column),时一个表格型的数据类型,行索引为index,列索引为axis 
- 创建: - 二维ndarray
- 一维ndarray, 列表,字典,元组或者Series构成的字典
- Series类型
- 其他DataFrame类型
- 也可以从列表类型的字典创建(列表类型的字典每一个元素就是一列,然后根据元素个数去设置横向的index个数,不足的话也会自动补齐)
 - 反正就是两个维度上设置index嘛,方便读取数据,index就是行索引,columns则是设置的列索引,数据会根据行列索引自动补齐。 
- 一些数值的读取: - .index
- .columns
- .values
- d[‘column’]
- d.ix[‘index’]
- d[‘column’][‘index’]
 
- DataFrame本质上时二维带 “标签” 数组 
以上两个东西的一个总结提高:
- 如何改变Series和DataFrame对象?
- 重新索引:- reindex(),直接给出你想要的index和column顺序即可
- fill_value: 用于填充缺失位置的值
- method: 填充方法
- .columns.insert(pos,value)
 
- 索引类型的常用方法:- .append(idx)
- .diff(idx)
- .intersection(idx)
- .union(idx)
- .delete()
 
- 面向对象的方法:a.columns.operation() / a.index.operation()
- .drop()可以删除Series和DataFrame指定行或列的索引
Pandas库中的运算:
- 运算规则: 根据补齐后的数据进行运算,运算默认产生浮点数。 
- 有一些运算方法: - .add
- .sub
- .mul
- .div
 - 采用这些方法可以很有效的添加一些参数,例如fill_value,使得多样性得以实现 
- 不同维度的运算为广播运算,一维Series默认在轴1参与运算。如过要其他的与之进项运算的话,要用add后则会sub方法才能实现,应该写成axis = 0,就是每一列都减去对应的一列。 
- 比较运算: - 只有同维度才能进行比较运算
- 比较运算若在不同维度则为广播运算,默认在1轴上
 
- Series = index + 一维数据 
- DataFrame = 行列索引 + 二维数据 
- 数据的排序: - 数据的理解:从数据中摘要得到想要的数据:- 基本统计
- 分布/累计统计
- 数据特征:相关性,周期性等
- 数据挖掘(形成知识)
 
- 排序方法:- .sort_index():对于索引进行排序(axis),默认升序(ascending)(默认为0轴,也就是纵向方向)
- Series.sort_values(axis,ascending)
- DataFrame.sort_values(by,axis,ascending),by时通过某个索引进行排序
- NaN同意放在排序的末尾
 
 
- 数据的理解:从数据中摘要得到想要的数据:
- 基本统计分析: - .sum .count .mean() .median() .var() .std() .max() .min()
- 默认操作于0轴,可以这么理解,Series只有一个维度默认时零维,所以DataFrame有两个维度但是默认操作的也是零维度,所以是纵向的。
- .argmin(),argmax() 计算最大/最小的索引(自动索引)
- .idxmin(),idxmax() 计算最大/最小的索引(自定义索引)
- .describe() 返回多维的统计信息,如果是series就返回series,如果是dataframe就返回dataframe.
 
Pandas中累计统计分析函数:
- 统计分析函数: - .cumsum(): 计算和
- .cumprod():计算积
- .cummax():计算最大值
- .cummin(): 计算最小值
 
- 滚动计算函数: - .rolling(w).sum(): 相邻w个元素的和
- .rolling(w).mean(): 相邻w个元素的算数平均值
- .rolling(w).var(): 相邻w个元素的方差
- .rolling(w).std(): 相邻w个元素的标准差
- .rolling(w).min().max(): 相邻w个元素的最小值和最大值
 - 默认都是从零轴开始广播运算,就是纵向的运算。 
数据的相关分析:
- 相关性:正相关,负相关,不相关 
- 原理:协方差 => Pearson相关系数 
- 计算方法: - .cov(): 计算协方差矩阵
- .corr(): 计算相关系数矩阵
 - 用series/dataframe.corr()就可以计算出对应的相关系数