Pandas使用简介


Pandas相关题目
【Python】—— Pandas 初体验(一)
【Python】—— Pandas 初体验(二)
【Python】—— pandas 数据分析
【Python】—— pandas数据处理


      Pandas是基于Numpy构建的、开源的Python数据分析工具包,借助高效的数据结构提供面向大规模数据的、高性能的数据分析操作。

      Pandas有两种重要的数据结构,Series和DataFrame。熟悉这两种数据结构是熟练使用Pandas的前提。下面结合实例讲述这两种数据结构相关的知识内容,以及Pandas的用法。

      我们将使用Jupyter Notebook来编写和运行代码下面列出的代码。这些代码涉及Pandas基本操作。首先,我们要做以下准备工作:
(1) 启动Jupyter Notebook。
(2) 单击进入一个文件夹(比如选择Desktop文件夹)。
(3) 新建一份交互式文档。
(4) 把文档命名为“Pandas-codes”。
(5) 在第1个代码输入框内敲入图所示的两行语句。这两行语句的作用是引入numpy模块,并把模块名字简写为“np”;引入pandas模块,并把模块名字简写为“pd”。
(6) 运行上述代码。如果页面上显示有“In [*]”,表明代码正在执行中,执行完后,方括号的星号将变为数字。

      Jupyter Notebook的使用详述了以上步骤的具体做法。完成以上6个步骤后,浏览器内的Notebook页面如图所示。

在这里插入图片描述

使用Pandas前的准备工作

1. Series介绍

      Series是带标签的一维ndarray。ndarray是Numpy的多维数组。所谓标签,有点类似于数据记录的主关键字,也类似于字典的键。下面的代码定义了名字为sd的变量,其类型是Series。
在这里插入图片描述

      上述各行中,第2个代码输入框内的,也即“In [2]:”开头的输入框内的,第2行代码是从字典d生成Series变量sd。第二个参数指出字典的键用作sd变量的标签。“Out[2]:”开头的5行,也即最后5行,是sd变量的输出内容。每一行有两列,第1列是标签,第2列是元素值。例如,sd变量的第一个元素的标签是’d’字母,其值是2。

      对于Series变量sd,有两种索引,第一种是位置索引。下面的代码通过位置索引访问了第一个元素。
在这里插入图片描述

      第二种是标签索引。下面的代码通过标签索引访问了标签为a字母的元素。
在这里插入图片描述

      下面的代码通过Series变量的iloc属性和位置索引访问了第一个元素。
在这里插入图片描述

      下面的代码输出Series变量的index属性值。index属性值是标签索引。
在这里插入图片描述

2. DataFrame介绍

      DataFrame是带有标签的二维表格。

      下面的代码生成了5行3列的矩阵d5x3,它是Numpy的ndarray。
在这里插入图片描述

      在d5x3矩阵的基础上,下面的2行代码生成了一个叫df5x3的DataFrame。其中第1行代码使用Pandas模块的DataFrame函数,从二维矩阵生成DataFrame。第二个参数指明DataFrame各列的字段名称依次是字母A、B、C。第2行代码输出df5x3的值。其后的6行正是df5x3的输出内容。
在这里插入图片描述

      df5x3的输出内容一共6行4列。第1行是列标题。第1列是行索引。DataFrame有行标签和列标题,而Numpy的ndarray没有这两部分。本文中没有特别指定的标签,默认使用行号作为标签。

      以下的代码通过iloc属性和行号获取了df5x3的第2行数据。
在这里插入图片描述

      下面的代码为df5x3指定行标签,然后输出df5x3的值。输出内容一共有6行4列。第1列是标签。
在这里插入图片描述

      下面的代码输出A列的数据。
在这里插入图片描述

      不能通过df5x3[‘two’]这样的写法获取第2行数据。这样的写法只对列标题有效。

      要获取第2行数据,可以采用切片的写法,如下所示。
在这里插入图片描述

      下面的代码通过DataFrame的loc属性和行标签获取df5x3的第2行数据。
在这里插入图片描述

      下面的代码通过loc属性、行标签切片和列标题获取了2、3、4行的后两列的数据。“’two’:’four’”是行标签的切片写法,结果是列表[‘two’, ‘three’, ‘four’]。
在这里插入图片描述

      下面的代码通过iloc属性,行号切片获取了第2、3行的数据。
在这里插入图片描述

3. 读Excel文件

      首先使用Excel软件把Excel文件另存为CSV格式的文件(文件后缀名是“.csv”)。然后调用read_csv函数读取数据。下面的代码调用read_csv函数,从“scores.csv”文件读入学生的成绩数据。这一文件与包含本文列出的代码的交互式文档(前面把它命名为“Pandas-codes”)位于同一个文件夹内。
在这里插入图片描述

      学生成绩表一共有13名学生的成绩。每个学生记录包含学号(sid)和3次测验成绩,即字段test1、test2和test3。

      最后3名学生的成绩有缺失。例如,序号为10的学生的第3车测验成绩缺失,在上表中显示为“NaN”,这是“Not a Number”的缩写,中文意思是“非数字”。后面会示范如何删除缺失数据。

      下面的代码在读入学生成绩表的时候,指定学号作为标签(索引)。第二个参数“index_col=’sid’”起到指定学号(sid列)作为标签(索引)的作用。
在这里插入图片描述

4. 观察数据

      调用DataFrame的info方法,能够反馈数据集内缺失数据的情况。下面的代码表明,学生成绩表scores有13行数据,字段test1有12个非空值,字段test2有12个非空值,字段test3有11个非空值。3个字段的数据类型都是浮点数。
在这里插入图片描述

      调用DataFrame的describe方法,能够了解数据分布情况。下面的代码表明,学生成绩表scores中,mean行说的是:第一次测验(字段test1)的平均分是73.58(不考虑缺失数据),第二次测验(字段test2)的平均分是63.75,第三次测验(字段test3)的平均分是62.36。min行给出各次测验的最低分,max行给出各次测验的最高分。25%行给出的是各次测验的25%分位点的分数线。对于第一次测验(字段test1),这个分位点是72,这意味着有25%的学生的分数小于等于72分。它的50%分位点是74.5,意味着有50%的学生分数不超过74.5分。
在这里插入图片描述

5. 删除缺失数据

      要删除有缺失数据的行,调用DataFrame的dropna方法即可。下面的代码删除了分数不全的3名学生的数据,并用scores_ok来记住没有缺失数据的成绩表。dropna方法的参数“how=’any’”意思是说,只要一行内有字段为空值,就删掉该行。如果参数为“how=’all’”,那么意思是说一行的所有字段都为空值,才删掉该行。
在这里插入图片描述

      通过筛选若干列,能够达成删除某些列的效果。下面的代码,删除了第3列(即第3个字段),用scores_1_2记住删除该列后的结果。
在这里插入图片描述

6. 统计

      DataFrame提供大量的统计函数。举几个例子,大家就能明白DataFrame的便捷性。

      下面的代码是求每次测验的、全部学生的平均分。
在这里插入图片描述

      下面的代码是求每次测验的最高分。
在这里插入图片描述

      下面的代码是求每个学生的平均分。
在这里插入图片描述

      下面的代码是求每个学生的总分。
在这里插入图片描述

7. 筛选和排序

      下面的代码筛选出第一次测验(字段test1)的成绩不低于60分的学生。比较运算表达式的写法是“scores_ok[‘test1’]>=60”。
在这里插入图片描述

      下面的代码筛选出第一次和第二次测验的成绩不低于60分的学生。描述筛选条件的表达式写作“(scores_ok[‘test1’]>=60) & (scores_ok[‘test2’]>=60)”。中间的符号&是“而且”的意思,两边的条件都为真,结果才为真。符号|是“或者”的意思,两边的条件有一个为真,结果就为真。上述写法中,两个圆括号不能省略,否则发生语法错误。
在这里插入图片描述

      下面的代码对scores_ok这个DataFrame按行标签从大到小地排序。排序结果存为scores_rev变量。sort_index方法是对行标签进行排序。sort_values方法是对元素值进行排序。sort_index方法的参数“ascending=False”是指从大到小(降序)排序。使用参数“ascending=True”,则是从小到大(升序)排序。
在这里插入图片描述

      下面的代码是按第一次测验成绩(字段test1)从小到大排序。参数“by=’test1”指明决定顺序的字段。
在这里插入图片描述

8. 分组统计

      下面的代码把3次测验都及格的学生筛选出来。
在这里插入图片描述

      下面的代码把有一次测验不及格的学生筛选出来。
在这里插入图片描述

      Pandas提供groupby方法对数据进行分组汇总。下面的代码统计得出第一次测验(字段test1)的及格人数和不及格人数。

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

      上述两行代码中,第1行代码的代码的作用是在scores_ok这个DataFrame中增加1列,列标题为’test1 passed’,这一列的各个元素值如下所示。第2行代码调用groupby方法进行分组汇总。groupby方法的参数“[‘test1 passed’]”指明实施分组的字段是’test1 passed’字段。该字段有两种值,True或False。这样就会分成两组,每种值一组。对于每一个分组,“[‘test1’]”将筛选test1字段,而后执行count方法,得出分组内元素的总数。上面的输出结果表明,没有通过的(值为False)的人数是1,通过的人数是9。
在这里插入图片描述

      调用drop方法能够删除表中某一列。下面的代码删除了上一代码增加的’test1 passed’列。调用drop方法删除一列要有两个参数,第一个是要删除的列的名字,第二个是“axis=1”,指出删除列,而不是默认的删除行。
在这里插入图片描述

      下面的代码增加了名为“passed”的一列。如果一个学生的3次测验都及格,passed字段的值为True,否则为False。
在这里插入图片描述

      下面的代码统计了3次测验都及格的人数和有不及格的人数。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超市商品管理系统设计 C++实现

超市商品管理系统设计—C实现 文章目录 超市商品管理系统设计---C实现一、内容要求大纲图 二、源代码(包含大量注释)1、main.cpp文件2、supermarket.h文件3、supermarket.cpp文件4、administrator.h文件5、administrator.cpp文件6、user.h文件7、user.cp…

代理API如此强大,每个Web开发人员都应该掌握它!

80%的Web开发者都不知道的代理API的8个主要使用场景! Proxy API 非常强大,非常有用。在这篇文章中,我将介绍它的 8 种使用场景。 ​在日常工作中,相信很多开发者都使用过Web调试代理工具,比如Fiddler或者Charles&…

【JAVA】怎么确保一个集合不能被修改

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 示例: 不可修改的List: 不可修改的Set: 不可修改的Map: 结语 我的其他博…

2024年全国教资笔试报名流程(建议电脑报名),看看有啥新要求?

一.报名、考试时间节点 1.笔试报名时间: 2024年1月12日-15日 2.笔试考试时间:2024年3月9日 3.笔试成绩查询时间:2024年4月15日 4.面试报名时间:2024年4月15日 5.面试考试时间:2024年5月18日 6.面试成绩查询时间:2024年6月14日 二.笔试报名流程: 登陆→考生注册 →填报个…

送货单打印要用什么打印机和软件

在打印送货单时,打印机和软件的选择都是非常重要的。根据需求,可以选择喷墨打印机、激光打印机或针式打印机等类型,而软件我们可以选择专业的送货单打印软件,例如:方可销售送货单软件(推荐)就是…

使用串口 DMA 模式接收不定长数据

一、简介 曾经遇到客户有一个需求,需要用串口 DMA 的方式接收不定长度的数据,DMA 有个缺点就是在每次传输前需要设定好传输的字节长度,这种方式显然对于接收不定长度的数据来说没有那么灵活。但 DMA 也有着显著的优点,如可直接访…

Hive基础知识(六):Hive 配置运行日志信息、打印当前库和表头、参数配置方式

1. Hive 运行日志信息配置 1)Hive 的 log 默认存放在/tmp/atguigu/hive.log 目录下(当前用户名下) 2)修改 hive 的 log 存放日志到/opt/module/hive/logs (1)修改/opt/module/hive/conf/hive-log4j2.prop…

Java EE 博客系统(Servlet版)

文章目录 1. 基本情况2. 准备工作3. 博客列表页4. 博客详情页5. 实现登录6. 强制要求登录7. 显示用户信息8. 退出登录9. 发布博客10. 如果程序出现问题怎么办? 1. 基本情况 这里的博客系统主要是四个界面 博客列表页 显示出当前网站上都有哪些博客博客详情页 点击…

【实用技巧】Windows 电脑向iPhone或iPad传输视频方法1:无线传输

一、内容简介 本文介绍如何使用 Windows 电脑向 iPhone 或 iPad 传输视频,以 iPhone 为例,iPad的操作方法类似,本文不作赘述。 二、所需原材料 Windows 电脑(桌面或其它文件夹中存有要导入的视频)、iPhone 14。 待…

Vue项目nginx部署到线上,访问时加前缀解决方案

一、业务场景: 最近项目开发完了,需要部署一个测试版本和正式版本到线上,测试版本前面需要加一个dev前缀,遇到了一些坑,分享给大家 二、目前效果 三、具体实现步骤: (1)实现静态文…

Spring+Vue实战项目环境准备跑通程序

SpringVue 源项目 后端: 首先在GitHub上克隆项目到本地(zip包下载/sourcetree拉取/gitbash克隆)。 https://github.com/songboriceman/doubao_community_backend 然后下载Lombok安装到你的IDE(eclipse)。 https://p…

[AutoSar]基础部分 RTE 04 数据类型的定义及使用

目录 关键词平台说明一、数据类型分类二、Adt三、Idt四、Base 数据类型五、units六、compu methods七、data constraint 关键词 嵌入式、C语言、autosar、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C,C编译器HighTec (GCC) 一、数据…