本文是作者学习课程Python数据分析与展示 北京理工大学 嵩天的简要学习笔记.
import pandas as pd
基本操作
d=pd.Series(range(20))#创造series
d.cumsum()#计算前n项和
基于两个数据类型
- Series
- DataFrame
的四个操作 - 基本操作
- 运算操作
- 特征类操作
- 关联类操作
对比NumPy和Pandas
|NumPy|Pandas|
|:|:|
|基础数据类型|扩展数据类型|
|关注数据的结构表达|关注数据的应用表达|
|维度:数据间关系|数据和索引之间关系|
Series
由一组数据机器相关联的数据索引组成
d=pd.Series(range(20))#传入一个列表创造series,pandas会为其自动创造索引
#或者传第二个参数--一个列表给参数index,这样可以自助定义索引
Series可以通过以下类型创建
- Python列表
- index和列表元素一致
- 标量值
- index表示其尺寸
- Python字典 {key:value,...}
- 可以传入index对参数顺序进行规范
- ndarray
n=pd.Series(np.arange(5))- 其他函数
- 如range()
Series类型的基本操作
b=pd.Series([9,8,7,6],['a','b','c','d'])
b.index
b.values
b['b']
b[1]
#自动索引和自定义索引并存,但是不能混用不然自动产生的index会NaN
#可以用ndarray的操作方法里的ndarray进行切片
#如果切片了好几个键值对会默认生成新Series然而切片一个就只会直接访问
'c' in b
b.get('f',100)
# Series+Series
#索引不同的不运算(NaN)索引相同的进行运算
b.name#对象的名字
b.index.name#索引的名字
#Series随时修改,立刻生效
DataFrame的本质是多列数据共用一列索引,纵向的column axis=1,横向的index axis=0;常用于二维数据
创建DataFrame
DataFrame类型的基本操作
- 二维ndarray
- 一维ndarray\列表\字典\元组\Series字典
- Series
- 其他DataFrame
d = pd.DataFrame(np.arange(10).reshape(2,5))
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)
dp.DataFrame(dt,index=[],columns=[])
#调整dt的行列
d.columns
d.values
d.index
d.ix['']#生成一行新的对象
d[][]#支持联合索引的二位带标签数组
d.reindex()#传列表参数给index或者column参数
d.columns.delete()
d.index.insert()
pandas库的数据类型运算
- 算数运算法则
- 根据行列索引补齐之后运算,默认产生浮点数
- 不起的时候填nan
- 高低维之间采用广播运算
- 四则运算可以采用方法运算
- .add() .sub() .mul() .div()
- fill_value参数可以替代nan赋初值
- 可以考虑布尔型对象
摘要的过程:有损地利用数据对数据进行处理.
数据基本处理
数据的排序
a.sort_index(axis=0,ascending=True)#在指定轴上根据索引进行排序,默认升序
#也可以对纵轴进行排序
Series.sort_values(axis=0,ascending=True)
DataFrame.sort_values(by,axis=0,ascending=True)#by表示排序轴的索引 NaN项被放在末尾
基本统计分析方法
| 方法 | 说明 |
|---|---|
| .sum() .count() | 总和\有效值数量 |
| .mean() .median() | 算术平均数\中位数 |
| .var() .std() | 方差\标准差 |
| .min() .max() | 最小\最大值 |
| argmin() argmax() | 计算极值所在位置的索引位置(自动索引)Series Only |
| .idxmin() .idxmax() | 计算极值所在位置的索引(自定义索引)Series Only |
| .describe() | 生成0轴的所有元素的所有初步统计结果,由于生成的是Series类型,因此可以用方括号索引 |
累计统计分析方法
| 方法 | 说明 |
|---|---|
| cumsum(n) | 计算前n个数字的和 |
| cumprod(n) | 计算前n个数的积 |
| cummax(n) | 计算前n个数字的最大值 |
| cummin(n) | 计算前n个数字的最小值 |
| .rolling(w) | 获取w为宽的窗口.后面接基本统计分析方法可以依次对相邻的w个元素进行操作 |
相关分析方法
| 方法 | 说明 |
|---|---|
| .cov() | 计算协方差矩阵 |
| .corr() | 计算相关系数矩阵,Pearson\Spearman\Kendall等相关系数 |