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



    前言

    为什么要学习pandas

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

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

    1. Pandas库的引用

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

    import pandas as pd
    
    • 1

    ▫️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

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

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

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

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

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

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

  • 相关阅读:
    Linux学习笔记——C程序的编译运行与调试
    重点,一文掌握ReentrantLock加解锁原理!|原创
    unity中方向的两种表示:欧拉角和四元数
    前端食堂技术周刊第 99 期:Remix 2.0、v0、2023 组件库盘点、TS Config 备忘录、Hello 算法
    Java基础 —— 项目一:ATM存取款系统
    Java使用hutool工具类发送网络请求
    货代里美国海运双清是什么意思
    linux系统中的信号(部分叙述)
    Java技能树评测
    断言,类型守卫,联合声明
  • 原文地址:https://blog.csdn.net/m0_58598240/article/details/128143944