Pandas库的使用

1. Pandas库的介绍

Pandas是Python第三方库,提供高性能易用数据类型和分析工具。引用pandas库:

import pandas as pd

对Pandas库的理解:
两个数据类型: Series, DataFrame
基于上述数据类型的各类操作
基本操作、运算操作、特征类操作、关联类操作

Pandas基于NumPy实现的,NumPy与Pandas的区别如下:

NumpyPandas
基础数据类型, ndarray扩展数据类型, Series 和 DataFrame
关注数据的结构表达(维度,数据间的关系)关注数据的应用表达(数据与索引间关系)

2. Pandas库数据类型及操作

  • Series = 索引 + 一维数据
  • DataFrame = 行列索引 + 二维数据
  • 理解数据类型与索引的关系,操作索引即操作数据
  • 重新索引、数据删除、算术运算、比较运算
  • 像对待单一数据一样对待Series和DataFrame对象

2.1 Series类型

2.1.1 Series类型

Series类型由一组数据及与之相关的数据索引组成。
Series举例:pd.Series() 函数参数1指定索引值,参数2指定索引,省略参数2可创建从0开始的自动索引。

Series类型可以由如下类型创建:Python列表、标量值、Python字典、ndarray、其他函数

  1. 从标量值创建

  1. 从Python字典类型创建

  1. 从ndarray类型创建(十分常用

2.1.2 Series类型基本操作

  • 索引类型Index的常用方法

  • Series类型包括index索引和values两部分
    .index 可获得索引,.values 可获得数据,举例如下:

其中Series中的自动索引和自定义索引并存,但不能混用

  • Series类型的操作类似ndarray类型
    • 索引方法相同,采用[]
    • NumPy中运算和操作可用于Series类型
    • 可以通过自定义索引的列表进行切片
    • 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片

举例:

Series操作中如果只对其中的一个元素进行索引,比如 b[3],则取出的是 b[3] 对应的值6;如果是自动索引切片,如 b[:3],则切出来的还是一个Series类型的数据,有索引也有值。

  • Series类型的操作类似Python字典类型
    • 通过自定义索引访问
    • 保留字in操作
    • 使用 .get() 方法

举例:

  • Series类型对齐操作,Series类型在运算中会自动对齐不同索引的数据

  • Series对象和索引都可以有一个名字,存储在属性.name中

  • Series对象可以随时修改并即刻生效

总结Series是一维带“标签”数组index_0 -> data_a ,Series基本操作类似ndarray和字典,根据索引对齐

2.2 DataFrame类型

2.2.1 DataFrame类型介绍

  • DataFrame类型由共用相同索引的一组列组成。
  • DataFrame是一个表格型的数据类型,每列值类型可以不同。
  • DataFrame既有行索引(index)、也有列索引(column)。
  • DataFrame常用于表达二维数据,但可以表达多维数据。

2.2.2 DataFrame类型可以由如下类型创建

  1. 二维ndarray对象,自动创建行索引和列索引

  1. 由一维ndarray、列表、字典、元组或Series构成的字典

将表格数据转换为字典,而后用DataFrame类型来表示:

  • 在表格 --> 字典 --> DataFrame的转换过程中,对应关系如下
    • 原表格中的一列 ----> 字典中的一个元素
    • 原表格的表头 ----> 字典中的键 ----> DataFrame中列索引

DataFrame获得其中的元素,索引默认取一列的元素,取一行的元素需要使用 .ix[索引],二维索引取具体的值,如下图:

其中,d['同比'] 表示取 “同比” 该列带有行索引的数据,d.ix['c2'] 表示取 c2 这一行带有列索引的数据,d['同比']['c2'] 表示取对应的具体值。

总结:DataFrame是二维带“标签”数组,基本操作类似Series,依据行列索引。

2.3 Pandas库的数据类型操作

  • 如何改变Series和DataFrame对象?

    • 增加或重排:重新索引
    • 删除:drop
  • 重新索引 .reindex()
    .reindex() 能够改变或重排Series和DataFrame索引

  • 删除指定索引对象 .drop()
    .drop() 能够删除Series和DataFrame指定行或列索引

2.4 Pandas库的数据类型运算

  • 算数运算法则
    • 算术运算根据行列索引,补齐后运算,运算默认产生浮点数
    • 补齐时缺项填充NaN(空值)
    • 二维和一维(一维Series默认在轴1参与运算,即二维中的每一行与一维元素进行运算)、一维和零维(一维的每个元素都与零维元素运算)间为广播运算
    • 采用 +-*/ 符号进行的二元运算产生新的对象

3. Pandas数据特征分析

  • 一组数据的摘要(摘要:有损地提取数据特征的过程)
    • 排序 .sort_index()、.sort_values()
    • 基本统计函数 .describe()
    • 累计统计函数 .cum*()、.rolling().*
    • 相关性分析 .corr()、.cov()

3.1 数据排序

.sort_index() 方法在指定轴上根据索引进行排序,默认升序。

.sort_index(axis=0, ascending=True)

举例:

.sort_values()方法在指定轴上根据数值进行排序,默认升序。

Series.sort_values(axis=0, ascending=True)
DataFrame.sort_values(by, axis=0, ascending=True) # by: axis轴上的某个索引或索引列表

.sort_values() 方法举例:

注意:空值NaN统一放到排序末尾

3.2 数据的基本统计分析

  • 适用于Series和DataFrame类型的方法

  • 适用于Series类型的方法

在Series和DataFrame中,几乎可以囊括所有方法的结果,该方法是 describe() 方法:

方法说明
.describe()针对0轴(各列)的统计汇总
  • 一维的Series对象使用 .describe() 方法之后仍然为Series对象,如下图:

  • 二维的DataFrame对象使用 .describe() 方法之后仍然为DataFrame对象,如下图:

3.3 数据的累计统计分析

累计统计分析函数能对序列中的前1-n个数进行累计运算,可减少for循环的使用,使得数据的运算变得更加灵活。

适用于Series和DataFrame类型,基本统计分析函数如下:

基本统计分析函数举例如下:

适用于Series和DataFrame类型,滚动计算(窗口计算)函数如下:

滚动计算函数举例如下:

3.4 数据的相关分析

适用于Series和DataFrame类型,相关分析函数如下:

相关分析函数举例如下:

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值