python数据分析05—Pandas数据处理

news2024/11/29 4:02:45

目录

1.缺失数据处理

1.1 DataFrame自身产生的缺失数据

1.2 缺失数据判断和统计

​1.3 缺失数据清理

2. 多源数据操作

2.1 合并函数:merge()

2.2 连接函数:join()

 2.3 指定方向合并:concat()

3. 数据分组和聚合运算

3.1 groupby()方法

3.2 聚合:aggregate()方法

3.2.1 一般聚合使用 

3.2.2 分组聚合


 

1.缺失数据处理

1.1 DataFrame自身产生的缺失数据

通过调整列名(reindex), 并增加带缺失值的‘four’列。

M2=M1.reindex(columns=['two','one','three','four'])

1.2 缺失数据判断和统计

1.3 缺失数据清理

(1)常量替代 :

(2)通过fillna()方法替代: 

(3)丢弃带缺失值的行或者列 :

 (4) 用repalce()方法替换缺失值: 

replace(to_replace=None,value=None)用value指定的新值,替换to_replace指定的原值。

 

2. 多源数据操作

2.1 合并函数:merge()

merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(’_x’, ‘_y’), copy=True, indicator=False, validate=None)

 

 

2.2 连接函数:join()

通过索引或者指定的列连接两个DataFrame:

DataFrame.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False) 

参数说明
other:【DataFrame,或者带有名字的Series,或者DataFrame的list】如果传递的是Series,那么其name属性应当是一个集合,并且该集合将会作为结果DataFrame的列名
on:【列名称,或者列名称的list/tuple,或者类似形状的数组】连接的列,默认使用索引连接
how:【{‘left’, ‘right’, ‘outer’, ‘inner’}, default:‘left’】连接的方式,默认为左连接
lsuffix:【string】左DataFrame中重复列的后缀
rsuffix:【string】右DataFrame中重复列的后缀
sort:【boolean, default
False】按照字典顺序对结果在连接键上排序。如果为False,连接键的顺序取决于连接类型(关键字)。

实例:

现有first与other两个DataFrame对象。

 2.3 指定方向合并:concat()

通过指定axis方向,进行多数据源合并。

pd.concat()函数可以沿着指定的轴将多个dataframe或者series拼接到一起,这一点和另一个常用的pd.merge()函数不同,pd.merge()函数只能实现两个表的拼接。

pd.concat( objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True,)

 

参数含义

  • objs:Series,DataFrame或Panel对象的序列或映射。如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。
  • axis:指定合并方向,默认值为0,为竖向合并。1为横向合并。
  • join:{'inner','outer'},默认为“outer”。如何处理其他轴上的索引。outer为联合和inner为交集。
  • ignore_index:boolean,default False。如果为True,请不要使用并置轴上的索引值。结果轴将被标记为0,...,n-1。如果要连接其中并置轴没有有意义的索引信息的对象,这将非常有用。注意,其他轴上的索引值在连接中仍然受到尊重。
  • join_axes:Index对象列表。用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑。
  • keys:序列,默认值无。使用传递的键作为最外层构建层次索引。如果为多索引,应该使用元组。
  • levels:序列列表,默认值无。用于构建MultiIndex的特定级别(唯一值)。否则,它们将从键推断。
  • names:list,default无。结果层次索引中的级别的名称。
  • verify_integrity:boolean,default False。检查新连接的轴是否包含重复项。这相对于实际的数据串联可能是非常昂贵的。
  • copy:boolean,default True。如果为False,请勿不必要地复制数据。

(4条消息) pandas的连接函数concat()函数_concat pandas_zzpdbk的博客-CSDN博客 

 

3. 数据分组和聚合运算

3.1 groupby()方法

(8条消息) groupby函数详解_.groupby_Vergil_Zsh的博客-CSDN博客 

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, group_keys=True, squeeze=False,  observed=False, **kwargs)

 

例子: 

 对School信息按照学校行索引进行分组,然后统计体育、美术、舞蹈的人数。

如下按性别:

 通过如上对比可见是通过level来确定统计标准。

 

 

3.2 聚合:aggregate()方法

aggregate(func,axis=0,*arg,**kwargs) 

func:指定用于集合运算的函数,具体类型包括自定义函数名,字符串函数名,列表函数名等。

3.2.1 一般聚合使用 

(1)内置函数聚合运算

(2)自定义函数聚合运算 

(3)多统计函数聚合运算 

3.2.2 分组聚合

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

使用Nacos将单体服务注册成微服务的步骤以及相关问题解决

目录 1.改造单体服务的配置文件。 2.添加Nacosw相关的pom依赖 3.在nacos的配置列表中创建配置列表 4.相关问题的解决 1.改造单体服务的配置文件。 🔖创建一个bootstrap.yml的配置文件该文件通常放置在src/main/resources目录中,并且优先于applicati…

C语言学习笔记 码云及git使用教程-05

目录 一、码云简介 二、码云注册 1.点击右上角的注册按钮 2.填写相应的注册信息 3.使用账号密码进行登陆 三、创建仓库 1.如图新建 2.定义仓库相应参数 3.初始化readme文件 4.效果 5.开源设置 四、git管理 1.安装git 2.打开桌面上的Git bash 3.进行仓库克隆 4. 在其他盘…

信息与通信工程面试准备——专业知识提问

1.无线通信:依靠电磁波在空间传播以传输信息。 2.通信的目的:传输信息。 3.通信系统:将信息从信源发送到一个或多个目的地。 4.本书中通信一般指电信:利用电信号传输信息(光通信属于电信,因为光也是一种…

Java中的队列

队列的理解 队列(Queue)是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。 LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。 常用方法 实例 import java.util…

zabbix监控-钉钉webhook告警并使用markdown格式

zabbix监控-企业微信webhook告警并使用markdown格式 最终告警样式: markdown格式与text格式的优点:文字排版清晰,可对不同文字标识颜色,大小等。 此方法使用zabbix提供的webhook方式,不需要建立脚本文件。 zabbix版…

【人工智能】监督学习、分类问题、决策树、信息增益

文章目录 Decision Trees 决策树建立决策树分类模型的流程如何建立决策树?决策树学习表达能力决策树学习信息论在决策树学习中的应用特征选择准则一:信息增益举例结论不足回到餐厅的例子从12个例子中学到的决策树:Decision Trees 决策树 什么是决策树 —— 基本概念 非叶节…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(7 月 20 日论文合集)

文章目录 一、检测相关(7篇)1.1 Drone navigation and license place detection for vehicle location in indoor spaces1.2 BSDM: Background Suppression Diffusion Model for Hyperspectral Anomaly Detection1.3 Domain Adaptation for Enhanced Object Detection in Foggy…

STM32C0开发(2)----开发板介绍

基于RASC的keil电子时钟制作_配置keil以及使用串口进行打印 套件概述样品申请特征系统控制和生态系统访问功能示意图系统框图跳线设置开发板原理图 套件概述 STM32C011F4P6-TSSOP20评估套件可以使用户能够无缝评估TSSOP20封装中STM32C0S系列微控制器的功能,具备高效…

Java面试题总结记录(2)—— 多线程并发篇

1、Java实现多线程的方法 创建线程的常用方式 继承Thread类实现Runnable接口实现Callable接口线程池方式创建 说明: 通过继承 Thread 或 实现 Runnable接口,Callable接口都可以实现多线程,不过实现Runnable接口与实现Callable接口的方式基本…

gin 中间件流程控制:Next()、 Abort()

gin 中间件流程控制 Next() 源码注释:Next应该只在中间件内部使用。它执行调用处理程序内部链中的挂起处理程序。 通俗的说,就是中间件放行,当一个中间件代码执行到Next(),会先执行它之后的函数,最后再来执行完本函…

Python Flask构建微信小程序订餐系统 (十)

🔥 编辑会员信息 🔥 编辑会员信息可以通过点击会员列表操作,也可以点击会员信息详情点击进行操作 🔥 修改编程会员信息列表布局 🔥 修改 web/templates/member/index.html 文件,添加跳转到编辑会员信息的页面 web/templates/member/set.html 🔥 创建用于会员…

Dockerfile文件+docker build命令方式创建Docker自定义镜像

自定义镜像 mycentosjava8 自定义一个centos镜像,具备vimifconfigjdk8的配置 拉取centos镜像 docker pull centos 该默认镜像此时还没有vim、ifconfig和jdk的配置或功能 jdk8的下载 地址:https://www.oracle.com/java/technologies/downloads/#java8 …

关于Nginx的 location 配置各种情况转换后的样子记录

Nginx location 配置要代理的地址测试URL代理后的URL举例编号/test01http://127.0.0.1:8080/test01/abc/test/test01/abc/test01/test02http://127.0.0.1:8080//test02/abc/test//abc/test02/test03/http://127.0.0.1:8080/test03/abc/test/test03/abc/test03/test04/http://12…

MYSQL练习一

练习一 创建stroe数据库,在数据库中根据开发喵store业务 创建表,表结构如下,并插入以下数据,完成下面的 sql 表数据: - 查询商品库存等于50的所有商品,显示商品编号,商 品名称,商品…

Vue第四篇:html和js基础知识查漏补缺

1、a标签 定义超链接,用于从一个页面链接到另一个页面 target属性:打开目标URL的方式,_top为再当前窗口打开,_blank为新窗口打开 2、span标签 对文档中的行内元素进行组合,它提供了一种将文本的一部分或者文档的一部分…

GB2312编码

说明 GB2312代码表用两个字节表示一个图形字符,两个字节中前面的字节为第一字节,后面的字节为第二字节。 区位码: GB2312代码表分成94个区,范围为1-94,区的编号由第一字节表示;每个区有94位,范…

@PostConstruct和@PreDestroy与servlet生命周期的关系

执行顺序结果 /*** 服务器加载Servlet* ---> 创建servlet实例,实现servlet构造函数* ---> 执行注解PostConstruct* ---> servlet.Init()* ---> servlet/service() 方法* ---> 执行注解PreDestroy* ---> servlet.destroy()* ---> 服务器卸载Se…

React Dva项目中路由跳转的方法

接下来 我们来看看路由跳转 先打开 我们Dva项目 然后我们需要在routes 下创建一个自己的路由,如果您尚未掌握在Dva项目中创建路由,可以参考我的文章 React 在Dva项目中修改路由配置,并创建一个自己的路由 然后 我的项目有两个路由 router.js…

2. Spring 的创建和使用

目录 1. 创建 Spring 项目 1.1 创建一个 maven 项目 1.2 添加 Spring 框架支持 1.3 添加启动类 2. 存储 Bean 对象 2.1 创建 Bean 2.2 将 Bean 注册到容器 3. 获取并使用 Bean 对象 3.1 创建 Spring 上下文 ApplicationContext 和 BeanFactory 的区别(重点…

《零基础入门学习Python》第054讲:论一只爬虫的自我修养2:实战

0. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! 今天我们决定在实战中来进行学习,会举两个例子,第一个例子是我们会下载一只猫,第二个例子是我们用Python来模拟浏览器通过在线的…