python数据分析与展示笔记 第三周 数据分析
内容来自中国大学MOOC,北京理工大学,python数据分析与展示课程,侵删。
如有错误,烦请指出。
python数据分析与展示笔记 第三周 数据分析
一、Pandas库:简介
import pandas as pd
- Pandas 基于 NumPy 实现,常与 NumPy 和Matplotlib 一同使用
- Pandas 的两个数据类型:Series 和 DataFrame
- Pandas 与 NumPy:
二、Pandas库:Series 数据类型
- Series 数据类型:索引+一维数据
- Series 是一维带 “标签” 数组,基本操作类似
ndarray
和 python 字典,根据索引对齐。
1. Series 类型的创建
(1) 由 python列表 创建:index 与列表元素个数一致,index 可省略
(2) 由 标量值 创建:index 表达 Series 类型的尺寸,index 不可省略
(3) 由 python字典 创建:键值对中的"键"是索引,index 从字典中进行选择操作
(4) 由 ndarray
创建:索引和数据都可以通过 ndarray
类型创建
2. Series 类型的基本操作
(1) 使用 .index 获得索引,使用 .values 获得数据
(2) Series类型的基本操作类似 ndarray 类型
- 可以通过自定义索引的列表进行切片
- 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片
(3) Series 类型的操作类似 python 字典类型
- 通过自定义索引访问
- 保留字
in
操作 - 使用
.get()
方法
3. Series 类型的对齐操作
4. Series 类型的 name 操作
5. Series 类型的修改
三、Pandas库:DataFrame 数据类型
- DataFrame:行列索引+二维数据
- DataFrame 的基本操作类似 Series,依据行、列索引
1. DataFrame 类型的创建
(1) 由 二维ndarray对象 创建
(2) 由 一维ndarray、列表、字典、元组或Series构成的字典 创建
- 从一维
ndarray
对象字典创建 - 从列表类型的字典创建
(3) 由 Series类型 创建
(4) 由 其他的DataFrame类型 创建
2. DataFrame 类型的基本操作
类似 Series 类型的基本操作,依据行列索引
四、Pandas库:数据类型操作
1. 重新索引 .reindex()
.reindex()
能够改变或重排 Series 和 DataFrame 索引
2. 索引类型
Series 和 DataFrame 的索引是 Index 类型,Index 对象是不可修改类型
.delete()
.insert()
3. 删除制定索引对象 .drop()
五、Pandas库:数据类型运算
(一)算术运算
- 根据行列索引,补齐后运算
- 补齐时缺项填充 NaN(空值)
- 运算默认产生浮点数
- 二维和一维、一维和零维间为广播运算
1. 采用 + - * / 符号的二元算术运算:产生新的对象
2. 采用方法形式的二元算术运算:不产生新的对象
3. 不同维度间的算术运算:广播运算
(1) 一维 Series 默认看成一行,在 DataFrame 的轴 0(axis=0
,行)参与运算
(2) 使用运算方法,令一维 Series 看成一列,在 DataFrame 的轴 1(axis=1
,列)参与运算
(二)比较运算
- 只能比较相同索引的元素
- 不进行补齐
- 采用
>, <, >=, <=, ==, !=
等符号进行的二元运算产生布尔对象 - 二维和一维、一维和零维间为广播运算
1. 相同维度间的比较运算
2. 不同维度间的比较运算
六、Pandas 数据特征分析
1. 数据的排序
(1) .sort_index()
- 在指定轴上根据 索引 进行排序,默认升序
DataFrame.sort_index()
:默认升序,默认行索引DataFrame.sort_index(ascending=False)
:降序,默认行索引DataFrame.sort_index(axis=1, ascending=False)
:降序,列索引
(2) .sort_values()
- 在指定轴上根据 数值 进行排序,默认升序
DataFrame.sort_values(by)
:升序,列名为 by 的那列DataFrame.sort_values(by, ascending=False)
:降序,列名为 by 的那列DataFrame.sort_values(by, axis=1)
:升序,行名为 by 的那行DataFrame.sort_values(by, axis=1, ascending=False)
:降序,行名为 by 的那行
2. 数据的基本统计分析
-
适用于 Series 和 DataFrame 类型
-
适用于 Series 类型
3. 数据的累计统计分析
- 适用于 Series 和 DataFrame 类型,累计计算
- 适用于 Series 和 DataFrame 类型,滚动计算(窗口计算)
4. 数据的相关分析
- X 增大,Y增大,两个变量正相关
- X 增大,Y减小,两个变量负相关
- X 增大,Y无视,两个变量不相关
(1) 协方差
- c o v ( X , Y ) = ∑ i = 1 n ( X i − X ‾ ) ( Y i − Y ‾ ) n − 1 cov(X,Y)=\frac{\sum_{i=1}^n(X_i-\overline{X})(Y_i-\overline{Y})}{n-1} cov(X,Y)=n−1∑i=1n(Xi−X)(Yi−Y)
- 协方差 > 0,X 和 Y 正相关
- 协方差 < 0,X 和 Y 负相关
- 协方差 = 0,X 和 Y 不相关
(2) Pearson 相关系数
- r = ∑ i = 1 n ( x i − x ‾ ) ( y i − y ‾ ) ∑ i = 1 n ( x i − x ‾ ) 2 s q r t ∑ i = 1 n ( y i − y ‾ ) 2 r=\frac{\sum_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})}{\sqrt{\sum_{i=1}^n(x_i-\overline{x})^2}sqrt{\sum_{i=1}^n(y_i-\overline{y})^2}} r=∑i=1n(xi−x)2sqrt∑i=1n(yi−y)2∑i=1n(xi−x)(yi−y)
- r r r 的取值范围为 [ − 1 , 1 ] [-1,1] [−1,1]
- 0.8 - 1.0,极强相关
- 0.6 - 0.8,强相关
- 0.4 - 0.6,中等程度相关
- 0.2 - 0.4,弱相关
- 0.0 - 0.2,极弱相关或不相关
(3) 适用于 Series 和 DataFrame 类型