【数据可视化】第四章—— 基于pandas的数据可视化(pandas数据结构)


前言

为什么要学习pandas

NumPy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢?

NumPy能够帮我们处理处理数值型数据,但是这还不够,很多时候,我们的数据除了数值之外,还有字符串,还有时间序列等,所以,NumPy能够帮助我们处理数值,但是pandas除了处理数值之外(基于NumPy),还能够帮助我们处理其他类型的数据。

1. Pandas库的引用

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

import pandas as pd

▫️Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用.
在这里插入图片描述
🔹计算前N项累加和
在这里插入图片描述
Series DataFrame
▫️基于上述数据类型的各类操作
▫️基本操作、运算操作、特征类操作、关联类操作

NumPy

  • 基础数据类型
  • 关注数据的结构表达
  • 维度:数据间的关系

Pandas

  • 扩展数据类型
  • 关注数据的应用表达
  • 数据与索引之间的关系

2. Pandas库的数据类型

2.1 Series类型

Series类型由一组数据及与之相关的数据索引组成.
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 Series创建方式

  • Python列表
  • 标量值
    在这里插入图片描述
  • Python字典
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

NumPy中NaN为float,pandas会自动根据数据类型更改series的dtype类型

  • ndarray
    在这里插入图片描述
    在这里插入图片描述
  • 其他函数
    range()等

2.3 Series类型的基本操作

  • Series类型包括index和values两部分
    在这里插入图片描述

  • Series类型的操作类似ndarray类型

  • Series类型的操作类似Python字典类型

    • 通过自定义索引访问
    • 保留字典in操作
    • 使用.get()方法
      在这里插入图片描述在这里插入图片描述

2.3.1 Series类型的切片和索引

  • 索引方法采用[ ]
    在这里插入图片描述
    在这里插入图片描述

  • NumPy中运算和操作可用于Series类型

  • 可以通过自定义索引的列表进行切片

  • 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片
    在这里插入图片描述
    在这里插入图片描述

2.3.2 Series类型的对齐操作

Series类型在运算中会自动对齐不同索引的数据。
在这里插入图片描述

2.3.3 Series类型的name属性

Series对象和索引都可以有一个名字,存储在属性.name中
在这里插入图片描述

2.3.4 Series类型的修改

Series对象可以随时修改并即刻生效
在这里插入图片描述

在这里插入图片描述

2.4 DataFrame类型

DataFrame类型由共用相同索引的一组列组成。
在这里插入图片描述
DataFrame对象既有行索引,又有列索引

  • 行索引,表明不同行,叫index,0轴,axis=0
  • 列索引,表名不同列,叫columns,1轴,axis=1
    在这里插入图片描述

DataFrame是一个表格型的数据类型,每列值类型可以不同
DataFrame既有行索引、也有列索引
DataFrame常用于表达二维数据,但可以表达多维数据

在这里插入图片描述
在这里插入图片描述
问题:

  1. DataFrame和Series有什么关系呢?

  2. Series能够传入字典,那么DataFrame能够传入字典作为数据么?

  3. 对于一个DataFrame类型,既有行索引,又有列索引,我们能够对他做什么操作呢

2.5 DataFrame类型创建

  • 二维ndarray对象
    在这里插入图片描述
    在这里插入图片描述

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

    • 从Series类型的字典创建
      在这里插入图片描述
      在这里插入图片描述
    • 从列表类型的字典创建
      在这里插入图片描述
    • 从列表类型的字典创建
      在这里插入图片描述
  • Series

  • 其他的DataFrame类型

🔹实例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 DataFrame的索引

  • 方括号里为数,则表示取行,对行进行操作
  • 方括号里为字符串,表示取列行,先对列后对行进行操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2.6.1 loc 通过标签索引数据

在这里插入图片描述
在这里插入图片描述

2.6.2 iloc 通过位置获取数据

在这里插入图片描述
在这里插入图片描述

2.6.3 bool索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6.4 DataFrame整体情况查询

  • .head(3) # 显示头部几行,默认5行
  • .tail(3) # 显示末尾几行,默认5行
  • .info() # 相关信息概览:行数,列数,列索引,列非空值个数,列类型,内存占用

在这里插入图片描述

2.7 DataFrame的基础属性

  • .shape # 行数 列数
  • .dtypes # 列数据类型
  • .ndim # 数据维度
  • .index # 行索引
  • .columns # 列索引
  • .values # 对象值,二维ndarray数组
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. 缺失数据的处理

我们的数据缺失通常有两种情况:
1️⃣一种就是空,None等,在pandas是NaN(和np.nan一样)
2️⃣另一种是我们让其为0
在这里插入图片描述

3.1 处理NaN数据

对于NaN的数据,在numpy中我们是如何处理的?在这里插入图片描述
在pandas中处理起来非常容易

判断数据是否为NaN:

pd.isnull(df),pd.notnull(df)

处理方式1:删除NaN所在的行列

dropna (axis=0, how='any', inplace=False)

处理方式2:填充数据,计算平均值等情况,nan是不参与计算的

t.fillna(t.mean()),t.fillna(t.median()),t.fillna(0)

🔹实例:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m 宽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值