python数据分析与展示笔记(第三周 数据分析)

本文详细介绍了Pandas库,包括Series和DataFrame两种数据类型。Series是一维带标签的数据结构,可由列表、标量值、字典或ndarray创建,支持基本操作、对齐操作和修改。DataFrame是二维数据结构,支持创建、基本操作和数据类型操作如重索引及删除。此外,文章还涉及了算术和比较运算,以及数据排序、统计分析和相关性分析等关键功能。
摘要由CSDN通过智能技术生成


内容来自中国大学MOOC,北京理工大学,python数据分析与展示课程,侵删。
如有错误,烦请指出。


python数据分析与展示笔记 第三周 数据分析

一、Pandas库:简介

import pandas as pd
  • Pandas 基于 NumPy 实现,常与 NumPy 和Matplotlib 一同使用
  • Pandas 的两个数据类型:Series 和 DataFrame
  • Pandas 与 NumPy:
    1 - numpy 和 pandas 区别

二、Pandas库:Series 数据类型

  • Series 数据类型:索引+一维数据
  • Series 是一维带 “标签” 数组,基本操作类似 ndarray 和 python 字典,根据索引对齐。

2.0 - 1 - series 类型2.0 - 2 - series 自动索引2.0 - 3 - series 自定义索引

1. Series 类型的创建

(1) 由 python列表 创建:index 与列表元素个数一致,index 可省略
2.1 - 1 - 由 python 创建

(2) 由 标量值 创建:index 表达 Series 类型的尺寸,index 不可省略
2.1 - 2 - 由标量值创建
(3) 由 python字典 创建:键值对中的"键"是索引,index 从字典中进行选择操作
2.1 - 3 - 由字典创建
(4) 由 ndarray 创建:索引和数据都可以通过 ndarray 类型创建
2.1 - 4 - 由 ndarray 创建

2. Series 类型的基本操作

(1) 使用 .index 获得索引,使用 .values 获得数据
2.2 - 1 - 获得索引和数据
(2) Series类型的基本操作类似 ndarray 类型
2.2 - 2 - 操作类似 ndarray

  • 可以通过自定义索引的列表进行切片
  • 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片

2.2 - 3 - 操作类似 ndarray
(3) Series 类型的操作类似 python 字典类型

  • 通过自定义索引访问
  • 保留字 in 操作
  • 使用 .get() 方法

2.2 - 4 - 操作类似 python 字典

3. Series 类型的对齐操作

2.3 - 对齐操作

4. Series 类型的 name 操作

2.4 - name 操作

5. Series 类型的修改

2.5 - 修改

三、Pandas库:DataFrame 数据类型

  • DataFrame:行列索引+二维数据
  • DataFrame 的基本操作类似 Series,依据行、列索引

3.0 - 1 - dataframe3.0 - 2 - dataframe 类型2

1. DataFrame 类型的创建

(1) 由 二维ndarray对象 创建
3.1 - 1 - 由 二维ndarray对象 创建
(2) 由 一维ndarray、列表、字典、元组或Series构成的字典 创建

  • 从一维 ndarray 对象字典创建3.1 - 2 - 从一维 ndarray 对象字典创建
  • 从列表类型的字典创建
    3.1 - 3 - 从列表类型的字典创建3.1 - 4 - 从字典创建

(3) 由 Series类型 创建
(4) 由 其他的DataFrame类型 创建

2. DataFrame 类型的基本操作

类似 Series 类型的基本操作,依据行列索引


四、Pandas库:数据类型操作

1. 重新索引 .reindex()

.reindex()能够改变或重排 Series 和 DataFrame 索引
4.1 - reindex4.1 - 2 - 实例

2. 索引类型

Series 和 DataFrame 的索引是 Index 类型,Index 对象是不可修改类型
4.2 - 1 - 索引类型的常用方法

  • .delete()
    4.2 - 2 - 实例1
  • .insert()
    4.2 - 3 - 实例2
3. 删除制定索引对象 .drop()

4.3 - drop

五、Pandas库:数据类型运算

(一)算术运算

  • 根据行列索引,补齐后运算
  • 补齐时缺项填充 NaN(空值)
  • 运算默认产生浮点数
  • 二维和一维、一维和零维间为广播运算
1. 采用 + - * / 符号的二元算术运算:产生新的对象

5.1 - 加 乘

2. 采用方法形式的二元算术运算:不产生新的对象

5.2 - 1 - 方法形式的二元运算5.2 - 2 - 实例

3. 不同维度间的算术运算:广播运算

(1) 一维 Series 默认看成一行,在 DataFrame 的轴 0(axis=0,行)参与运算
5.3 - 1 - 广播运算轴1(2) 使用运算方法,令一维 Series 看成一列,在 DataFrame 的轴 1(axis=1,列)参与运算
5.3 - 2 - 广播运算轴0

(二)比较运算

  • 只能比较相同索引的元素
  • 不进行补齐
  • 采用 >, <, >=, <=, ==, != 等符号进行的二元运算产生布尔对象
  • 二维和一维、一维和零维间为广播运算
1. 相同维度间的比较运算

5.4 - 1 - 相同维度

2. 不同维度间的比较运算

5.4 - 2 - 不同维度

六、Pandas 数据特征分析

1. 数据的排序

(1) .sort_index()

  • 在指定轴上根据 索引 进行排序,默认升序
  • DataFrame.sort_index():默认升序,默认行索引
  • DataFrame.sort_index(ascending=False):降序,默认行索引6.1 - 实例1
  • DataFrame.sort_index(axis=1, ascending=False):降序,列索引
    6.1 - 2 - 实例2

(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 的那行
    6.1 - 3 - 实例36.1 - 4 - 实例4
2. 数据的基本统计分析
  • 适用于 Series 和 DataFrame 类型
    6.2 - 1 - 适用于 Series 和 DataFrame16.2 - 2 - 适用于 Series 和 DataFrame2

  • 适用于 Series 类型
    6.2 - 3 - 适用于 Series

6.2 - 4 - 实例16.2 - 5 - 实例2

3. 数据的累计统计分析
  • 适用于 Series 和 DataFrame 类型,累计计算
    6.3 - 1 - 适用于 Series 和 DataFrame 累计计算6.3 - 2 - 实例
  • 适用于 Series 和 DataFrame 类型,滚动计算(窗口计算)
    6.3 - 3 - 适用于 Series 和 DataFrame 滚动计算6.3 - 4 - 实例
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)=n1i=1n(XiX)(YiY)
  • 协方差 > 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(xix)2 sqrti=1n(yiy)2i=1n(xix)(yiy)
  • 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 类型
6.4 - 1 - 适用于 Series 和 DataFrame6.4 - 2 - 实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值