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

news2024/10/1 17:25:13

文章目录

  • 前言
  • 1. Pandas库的引用
  • 2. Pandas库的数据类型
    • 2.1 Series类型
    • 2.2 Series创建方式
    • 2.3 Series类型的基本操作
      • 2.3.1 Series类型的切片和索引
      • 2.3.2 Series类型的对齐操作
      • 2.3.3 Series类型的name属性
      • 2.3.4 Series类型的修改
    • 2.4 DataFrame类型
    • 2.5 DataFrame类型创建
    • 2.6 DataFrame的索引
      • 2.6.1 loc 通过标签索引数据
      • 2.6.2 iloc 通过位置获取数据
      • 2.6.3 bool索引
      • 2.6.4 DataFrame整体情况查询
    • 2.7 DataFrame的基础属性
  • 3. 缺失数据的处理
    • 3.1 处理NaN数据


前言

为什么要学习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)

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

毕设选题推荐基于python的django框架医院预约挂号系统

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 💖🔥作者主页:计算机毕设老哥🔥 💖 Java实战项目专栏 Python实…

公网SSH远程连接内网Ubuntu主机【cpolar内网穿透】

SSH为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。但在没有公网IP的环境下,只能在同个局域网下远程。 本篇教程主要实现通过内网穿透,在公网环境下SSH远程登录内网的Ubuntu主机,突破局域网的…

manjaro gnome 记录 3 配置国内镜像源

manjaro gnome 记录 3 配置国内镜像源初manjaro 记录 3 配置国内镜像源更改这个文件设置源初 希望能写一些简单的教程和案例分享给需要的人 manjaro 记录 3 配置国内镜像源 打开图像界面的软件管理,点击右上角:三个点的图标 点击首选项 输入管理员密…

Day17-购物车页面-收获地址-初步封装my-address组件

1.创建收货地址组件(my-address) 我的操作: 1>在uni_modules文件夹右键新建一个组件 2>还需要自己补全代码 1>和2>的阶段效果图: my-address组件已经被渲染成功了。 *********************************************…

一文看懂linux 内核网络中 RPS/RFS 原理

1 自带 irqbalance 瓶颈 基于简单的中断负载均衡(如系统自带的irqbalance进程)可能会弄巧成拙。因为其并不识别网络流,只识别到这是一个数据包,不能识别到数据包的元组信息。 在多处理器系统的每个处理器都有单独的硬件高速缓存,如果其中一…

黑马程序员软件测试实战项目

Ego微商 “Ego微商”微信小程序应用,主要针对于有特色的食品类商品线上零售。通过微信平台的大流量入口,在一定程度上升高了特色食品的影响力,同时借助微信的模板消息快速推送更新的商品,实现轻量级应用的C2C或者是B2C的线上销售…

《论文阅读》BALM: Bundle Adjustment for Lidar Mapping

留个笔记自用 BALM: Bundle Adjustment for Lidar Mapping 做什么 首先是最基础的,Structure-from-Motion(SFM),SFM可以简单翻译成运动估计,是一种基于dui8序列图片进行三维重建的算法。简单来说就是是从运动中不同…

12月2日第壹简报,星期五,农历十一月初九

12月2日第壹简报,星期五,农历十一月初九1. 银保监会:2023年1月起在北京、上海、江苏、浙江、福建、广东等10个省市开展商业养老金业务试点。2. 国家首批未来产业科技园试点名单出炉:空天科技未来产业科技园、未来能源与智能机器人…

2022-12-02 编译Android平台OpenCV,用到读取视频时报错:AMediaXXX

文章目录编译Android平台OpenCV,用到读取视频时报错:解决参考编译Android平台OpenCV,用到读取视频时报错: ld: error: undefined symbol: AMediaExtractor_new ld: error: undefined symbol: AMediaExtractor_setDataSourceFd ld…

PyQt5的安装

0. 准备工作 Anaconda3-5.2.0-Windows-x86_64pycharm-professional-2018.2.4PyQt5 5.8.1 1. 如何正确安装PyQt5? 1.1 安装PyQt5 pip install PyQt5 -i https://pypi.douban.com/simple- i表示指定安装源,表示国内源 https://pypi.douban.com/simple …

创建一个SpringCloud项目

文章目录1.首先在**SpringCloud官网**中查看依赖版本号2.创建主Maven项目:在pom文件中引入依赖3.再在这个Maven项目中创建子模块(子模块也是Maven)(1)创建一个数据库db01和表dept(2)创建实体类dept(注意:**每个实体类都…

导包问题解决--ImportError: DLL load failed while importing _path: 找不到指定的模块

一、问题反馈 在运行某个Python程序时,需要导入numpy和matplotlib包如下: import numpy as np import matplotlib.pyplot as plt运行程序时会报错“ImportError: DLL load failed while importing _path: 找不到指定的模块”: 二、问题解决…

信号发生器的电路构成及工作原理

一、信号发生器的电路构成 信号发生器的电路组成有多种形式,一般包括以下几个环节: 基本波形产生电路:波形产生可以由RC振荡器、文丘里电桥振荡器或压控振荡器产生。 波形转换电路:基本波形由正弦波、方波、三角波经过矩形波整形电路、正弦波整形电路、三角波整形电…

经众多Nature文章使用认证!艾美捷抗酒石酸酸性磷酸酶TRAP染色试剂盒

抗酒石酸酸性磷酸酶(TRAP,tartrate-resistant acid phosphatase)为破骨细胞的标志酶,特异地分布于破骨细胞中,为破骨细胞所特有。通常作为鉴别破骨细胞的重要标志物,使破骨细胞呈红色。Kamiya艾美捷抗酒石酸…

Java单表实现评论回复功能

Java单表实现评论回复功能1.简介2.功能实现图3.数据库设计4.实体类5.实现思路6.功能实现6.1 Sql入手6.2 业务实现7.前端实现8.最终成果1.简介 最近在写毕业设计的时候发现需要实现一个评论功能,然后看了一下掘金和csdn的评论区,如何实现评论功能&#xf…

【已解决】nginx x-cache: MISS

nginx x-cache: MISS 今天在使用nginx的时候发生了巨无语的一件事,明明我已经配置了代理缓存proxy_cache,但是一直未生效,于是我不断进行排错、nginx -s reload,问题始终没有解决。后来我尝试在另一台服务器上使用相同的配置&…

Docker的数据管理(数据卷、容器互联)

Docker的数据管理Docker的数据管理(数据卷、容器互联)一、数据卷(容器与宿主机之间数据共享)创建数据卷容器写入数据宿主机写入数据容器只有读的权限二、数据卷容器(容器与容器之间数据共享)创建两个数据卷…

yocs_velocity_smoother速度平滑库知识

一.C &#xff08;1&#xff09;nth_element()用法 头文件&#xff1a;#include<algorithm> nth_element:在数组或容器中将第几大或小的元素放到该放的位置上。&#xff08;默认第几小&#xff0c;可以用cmp自定义为第几大&#xff09; 如&#xff1a;nth_element(a,…

一篇文章搞懂:词法作用域、动态作用域、回调函数及闭包

前言 把以前一直只限于知道&#xff0c;却不清晰理解的这几个概念完完整整地梳理了一番。内容参考自wiki页面&#xff0c;然后加上自己一些理解。 词法作用域和动态作用域 不管什么语言&#xff0c;我们总要学习作用域(或生命周期)的概念&#xff0c;比如常见的称呼&#xf…

Flutter ーー logger 组件记录日志

Flutter ーー logger 组件记录日志 原文 https://medium.com/simbu/flutter-logging-with-logger-6227308ca199 前言 是时候添加一些日志记录了&#xff0c;我希望能够检查发生的网络请求和关键操作&#xff0c;在应用程序和后端之间的交互变得越来越复杂的情况下&#xff0c;给…