数据分析04——Pandas简介/Series对象/DataFrame对象

1、Pandas简介:

  • Pandas是基于NumPy开发的
  • 数据分析三大剑客之一,Python数据分析的核心库
  • 提供快速、灵活、明确的数据结构
  • Series对象:一维数组结构,由index和value构成
  • DataFrame对象:二维数组结构,由index、column和value构成
  • 能够简单、直观、快速地处理各种类型的数据

2、Series对象:

  • 创建series对象方法很简单,但是series索引获取值方法就有两种,一种是通过原索引,一种是通过自定义索引。
  • 关键字:Series、data、index、values、hasnans
import pandas as pd	# 必须要导入pandas库,别名都是约定俗成的pd

# 创建pandas对象
s1 = pd.Series([88, 98, 75])

# 设置Series索引,如果不设置索引,默认从0开始
s2 = pd.Series(
    data=[88, 98, 75],
    index=[1, 2, 3])
   
# 索引不一定是数字
s3 = pd.Series(
    data=[88, 98, 75],
    index=['张三', '李四', '王五'])

# 我们自己设置的索引叫做索引名,原有的默认索引叫做索引号
print(s3[0])	# 88
print(s3['张三'])	# 88

# 可以通过多个索引名获取值
print(s3[['张三', '王五']])	# 88 75

# 索引名(自定义的)切片获取值,左闭右闭
s3['张三':'王五']

# 索引号(原始的)切片获取值,左闭右开
s3[0:2]

# 获取series对象的索引
s3.index
# 获取series对象的值
s3.values

# nan:not a number,指空值
s3.hasnans	# 判断series对象是否包含一个空值

3、DataFrame对象:

  • DataFrame对象其实就是一个二维数组
  • 创建DataFrame对象普通方法:(data(二维数组)、index(行索引、序号)、columns(列索引、表头、字段))
import pandas as pd

# 表单由行列构成,二维数组
# 索引:行索引(序号)、列索引(表头)
data = [[110, 105, 99],
        [105, 88, 115],
        [109, 120, 130]]
index = [0, 1, 2]  # 行索引
columns = ['语文', '数学', '英语']  # 列索引

df = pd.DataFrame(
    data=data,
    index=index,
    columns=columns)
df
# DataFrame由index、columns、values三个组件构成
# DataFrame对象是Series对象的集合

在这里插入图片描述

  • 如果新建DataFrame对象时,data中只有一行数组会发生什么? 答:可以正确新建对象
d1 = pd.DataFrame(
    data = [[1, 2, 3]],
#     index=[1, 2, 3]
    columns = ['你', '我', '他']
)
  • 用字典创建DataFrame对象方法:

    • 本质就是通过字典把创建每一列的数据,其中列索引是字典的key,每一列的值就是字典的value
      在这里插入图片描述
  • 遍历DataFrame

    • DataFrame对象名.columns:获取列索引
    • 通过列索引获取的每一列数据都是一个Series对象
    • DataFrame对象名[列索引]:获取某一列数据(Series对象)
    • 遍历DataFrame,归根结底就是在遍历列数据
for col in df.columns:
    series = df[col]
    print(series)
  • DataFrame的重要属性
    1、查看所有值:DataFrame对象名.values
    2、查看某一列中不重复的值(去重):DataFrame对象名[列名].unique()
    3、查看某列的不重复值的数量:DataFrame对象名[列名].nunique()
    4、查看所有列的数据类型:DataFrame对象名.dtypes
    5、查看所有行名:DataFrame对象名.index
    6、重命名行名:DataFrame对象名.index = [‘A1’, ‘A2’, ‘A3’]
    7、查看所有列名:DataFrame对象名.columns
    8、重命名列名:DataFrame对象名.columns = [‘语’, ‘数’, ‘外’]
    9、将行列数据进行转置:DataFrame对象名.T
    10、查看前n条数据:DataFrame对象名.head(n) # 如果总数据不足n条,不会报错,会给出所有数据
    11、查看后n条数据:DataFrame对象名.tail(n)
    12、查看行数和列数:DataFrame对象名.shape
    13、查看行数:DataFrame对象名.shape[0]
    14、查看列数:DataFrame对象名.shape[1]
    15、查看详细信息(索引、数据类型、非空值数量和内存信息):DataFrame对象名.info()

  • DataFrame的重要函数
    注:下面用df表示DataFrame对象名
    1、查看每列的描述统计信息(返回数据还是DataFrame类型):df.describe().round(2) # round(2)是保留两位小数,在这可加可不加
    2、返回每列非空值数量:df.count()
    3、返回每列的合计:df.sum()
    4、返回每列的最大值:df.max()
    5、返回每列最小值:df.min()
    6、返回最大值的索引号(返回的是默认索引):df[列名].argmax()
    7、返回最小值的索引号(返回的是默认索引):df[列名].argmin()
    8、返回最大值的索引名(返回的是自定义索引):df[列名].idxmax()
    9、返回最小值的索引名(返回的是自定义索引):df[列名].idxmin()
    10、返回每列平均值:df.mean()
    11、返回每列中位数:df.median()
    12、返回方差:df.var()
    13、返回某一列方差:df[列名].var()
    14、返回标准差:df.std()
    15、检查df中的空值(两种):df.isnull() # df.notnull()


总结:

  • 在DataFrame中的很多属性和函数都是通过列来进行操作的,所以在DataFrame中列可以看作一个基本单位

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

106.(cesium篇)cesium椎体旋转

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html lang="en"> <

RT-Thread 5.0.1 qemu-virt64-aarch64 解决编译问题

前言 最近在最新的 RT-Thread 上搭建 bsp qemu-virt64-aarch64 的编译环境&#xff0c;发现较新的 gcc 交叉编译器编译失败了。 经过尝试较旧版本的 gcc 交叉编译工具链&#xff0c;终于编译通过了 下载 gcc 交叉编译工具链&#xff0c;这里推荐使用 arm 官方的 gcc 下载地址…

眼球追踪、HDR、VST,从代码挖掘Valve下一代VR头显

擅长爆料、挖掘线索的Brad Lynch&#xff0c;此前发布了Quest Pro等设备的线索文章引发关注。​近期&#xff0c;又公布一系列与“Valve Deckard”VR头显相关消息&#xff0c;比如支持眼球追踪、HDR、VST透视、Wi-Fi网络等等。在SteamVR 1.26.1测试版更新、Steam用户端、Gamesc…

掌控MySQL并发:深度解析锁机制与并发控制

前一篇MySQL读取的记录和我想象的不一致——事物隔离级别和MVCC 讲了事务在并发执行时可能引发的一致性问题的各种现象。一般分为下面3种情况&#xff1a; 读 - 读情况&#xff1a;并发事务相继读取相同的记录。读取操作本身不会对记录有任何影响&#xff0c;不会引起什么问题&…

基于matlab使用主动声纳系统进行水下目标检测

一、前言 此示例演示如何模拟具有两个目标的主动单基地声纳方案。声纳系统由各向同性投影仪阵列和单个水听器元件组成。投影仪阵列呈球形。反向散射信号由水听器接收。接收到的信号包括直接和多路径贡献。 二、水下环境 在浅水环境中&#xff0c;声源和目标之间存在多个传播路径…

探索深度学习中的计算图:PyTorch的动态图解析

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

MySQL的高级语句

一、SQL高级语句 1、 SELECT 显示表格中一个或数个栏位的所有资料 语法&#xff1a;SELECT "字段" FROM "表名"; select * from test1; select name from test1; select name,sex from test1;2、DISTINCT 不显示重复的内容 语法&#xff1a;SELECT D…

2023年主流的选择仍是Feign, http客户端Feign还能再战

&#x1f473;我亲爱的各位大佬们好&#x1f618;&#x1f618;&#x1f618; ♨️本篇文章记录的为 微服务组件之http客户端Feign 相关内容&#xff0c;适合在学Java的小白,帮助新手快速上手,也适合复习中&#xff0c;面试中的大佬&#x1f649;&#x1f649;&#x1f649;。 …

古典密码体制--代换和置换

一、介绍与分类 1.介绍&#xff1a; 古典密码时期一般认为是从古代到19世纪末,这个时期生产力水平低,加密、解密方法主要以纸、笔或简单的器械来实现,在这个时期提出和使用的密码称为古典密码。古典密码是密码学发展的初级阶段。尽管古典密码大都较简单,但由于其安全性差&…

基于小程序制作一个ChatGPT聊天机器人

在AI技术日新月异的浪潮中,将ChatGPT与实战开发相结合,制作一个随身携带的聊天机器人,紧贴前沿的同时稳固基础。 一、前言1.1、什么是ChatGPT1.2、什么是文本完成二、API2.1、ChatGPT官网申请API所需要的key2.2、搭建API2.3、创建控制器及动作方法三、小程序3.1、页面创建3.…

彻底解决 Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0 解决方法

当我遇到这错误的时候,我去网上也找过对应解决方法,出现这个的原因有很多种情况 大多是解决Linux系统里的 我是windows系统里的MySQL服务出问题了,所有那些方法对我来说毫无意义. 好了,说一下我的解决办法,其实也很简单 只需要卸载mysql服务,注册表也要删干净,也要把环境变…

信通初试第一:无科研无竞赛一战上岸上海交大819学硕感悟

笔者来自通信考研小马哥23上交819全程班学员 信通初试第一&#xff1a;无科研无竞赛一战上岸上海交大819学硕感悟 原创2023-04-27 11:04通信考研小马哥 笔者来自通信考研小马哥23上交819全程班学员 本人情况&#xff1a; 本人是19届交本&#xff0c;本科成绩很差&#xff0c;…

学网络安全都是一群什么人?

大家好呀&#xff0c;我是知了姐&#xff0c;又是一期学员故事栏目~ 3月下旬知了堂信安方向开新班&#xff0c;知了姐跟着去采访&#xff0c;了解到新学员们的求学故事&#xff0c;嘿你别说&#xff0c;虽然大家出身专业不同、经历背景不同&#xff0c;如今却在同一个地点相遇…

FFmpeg从视频中提取音频

文章目录 FFmpeg从视频中提取音频流文件基本信息查看音频采样率、采样深度和比特率 从视频中提取音频添加歌曲信息和封面歌曲信息封面 FFmpeg从视频中提取音频 参考博客 ffmpeg DocumentationFFmpeg最全教程FFmpeg 提取视频的音频FFMPEG 提取音频ffmpeg 给音频添加封面&#xf…

计算机视觉--图像拼接

图像拼接 单应性变换仿射变换图像扭曲实现图像嵌入&#xff08;图中图&#xff09; RANSAC算法算法介绍图片收集无RANSAC优化和有RANSAC优化的代码实现差别 总结 单应性变换 单应性变换是指一个平面上的点通过一个矩阵变换映射到另一个平面上的点&#xff0c;这个变换矩阵是一…

前端网页设计必逛的六个宝藏网站(非常值得收藏)

&#x1f389;个人主页&#xff1a;这个昵称我想了20分钟 ✨往期专栏&#xff1a; 【速成之路】jQuery 【SQL server速成之路】 素材网站 ✨iconfont阿里巴巴矢量图标库  ✨美叶  ✨IconPark  ✨pexels  ✨COLOR  ✨Uigradients ✨iconfont阿里巴巴矢量图标库 网站入…

使用Vue+axios+Vuex实现登录后前端数据本地化存储实战

前言 这已经是《Vue + SpringBoot前后端分离项目实战》专栏的前端部分第8篇博客了,服务端部分由天哥(天哥主页)负责,目前专栏目录如下: Vue + SpringBoot前后端分离项目实战 - 前端部分1. 手把手带你做一套毕业设计-征程开启2. 我应该把毕业设计做到什么程度才能过关?3.…

【burpsuite安全练兵场-服务端8】文件上传漏洞-7个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

CTF比赛必备常用工具

文中介绍的所有工具&#xff0c;均在压缩包中&#xff0c;结合本文更便于大家下载使用&#xff0c;快速上手。 CTF常用工具下载 CTF比赛必备常用工具 一、什么是CTF二、比赛中工具的重要性三、常用MISC&#xff08;杂项&#xff09;工具1. Audacity &#xff08;提取莫斯密码辅…

HTML5 <s> 标签、HTML5 <sub> 和 <sup> 标签

HTML5 <s> 标签 定义和用法 <s> 标签定义加删除线的文本。HTML 5 中不再支持这个标签。请使用 CSS 代替。 HTML 4.01 与 HTML 5 之间的差异 在 HTML 4.01 中不赞成使用 <s> 标签。 在 HTML 5 中不支持 <s> 标签。 提示和注释 提示&#xff1a;请…