pandas用均值填充nan_Pandas学习笔记(三)

前言学习Pandas的最好方式就是多用它,只有在实际中多用,才能更好地掌握其中的技巧,这一次我们从数据的聚合来开始。

GroupBy的使用

聚合的意思指的是对数据框架中某一类型的数据进行整合,在整合后可以对其进行求和、求平均值等操作,下面举例说明:8516f1075dd79d28d53ea14e1f97f3b1.png对上面创建的数据框架按公司进行分类,求各公司的人均销售额:12639394b8c10b579ba68e8546b86653.png再来统计一下各公司出现的次数:156ed69db5a236feb0bc60e024a6606a.png请注意,在用count统计的时候,groupby是按哪列分组,则统计的就是哪列中不同类别的个数。在Pandas中,有一个函数.describe(),它通常用来给出一个数据框架的纵览,比如:4c878aa372c6114658cebfa4b6ab3d57.png上述的输出结果中,有各公司出现的次数、销售额的均值、均方差、最小最大值等等,如果觉得这样的排列看起来不好看,还可以将其转置:0e2611237dd05a63b65ccc274856ea80.png或者只看一个公司的纵览:032cbcc6d7f9f2c16f81fa1c770185f0.png

数据框架的级联(concatenation)

为了说明数据集的级联,我们考虑这样一种情况,某公司派出一些数据采集人员对某个地区的某些产品进行满意度调查,比如调查ABCD四种产品,分别得到的数据如下:777be2c23adc8ccfbcfe5ab7c70ac55e.png现需要将这些数据合在一起进行分析,这种情况下就要用到数据集的级联概念。在Pandas中,用.concat()来完成数据集的级联:5f0824bdb114bf284e275690fc61f900.png从上述输出结果来看,整合数据的任务完成了,这种级联的方案属于按列级联,相应地,肯定还有一种按行级联,此时需要添加参数axis=1bf9eaef46eaa949af6e134e3a8e96982.png从上述结果来看,当按行级联时,由于在每个数据框架中,我们为其指定的index都不重合,因此,级联的结果中,不同框架中缺少数据的部分,都是用NaN来填充,如果还记得上一节中fillnan函数,那么一定记得它也有一个参数axis=1设置为填充行时的情况。也就是说,在DataFrame中,如果一个函数对行列均有效果时,其默认情况都是对列操作的。上述的级联中,我们之所有产生了那么多缺失值,是由于各数据的index不重合,如果有重合的情况会怎么样呢?

数据的合并(merge)

如果熟悉SQL语言的同学肯定对数据表的合并不陌生,在pandas中,主要是通过pd.merge函数来进行的,它的语法是这样的:
pd.merge(leftdata, rightdata, how='inner', on='Key')
上述语法中的leftdata指的是应该显示在左侧的数据框架,rightdata当然是指显示在右侧的数据框架,关于how的方式,我们下来将举例细说,on当然是指两个数据集要合并时所具备的关键列:9edff94b4c34b0efe204406326df47ee.png我们也可以根据多个关键列合并,比如:299412885546b29253582b39bad91416.png请注意,观察上述结果,我们可以发现,leftdata中的key1key2组合[k0,k0][k1,k0]rightdata中的关键列有重合,其中[k1,k0]rightdata中对应两组数据,因此,当以inner方式合并时,它们就逐一匹配合并在一起。下面我们来看一下how=outer时的合并方式:e0d52123d2c58e26ef6a9e4154aeffd1.png当以outer的方式合并时,结果中将包含两个数据框架对应的关键列中所有组合,对没有该组合对应的框架中的数据,在结果中将以NaN来填充。
综上可知,inner合并,指的是求两个数据框架对应关键列的交集,而outer合并,则是两个数据框架对应关键列的并集。
Merge是对两个数据框架有共同列的进行合并,但在级联部分的最后,我们还提到如果index有共同部分时该怎样处置的问题,下面给出该问题的解决方案。

联合(join)

当两个数据框架中的index有重合部分时,想要合并两部分数据,则需要用到join方法:0ed015de0fec1cc5fcf1644a5b05fd27.png86c5718b17929068271c46d1a427e482.png上面给出了join的四种联合方法,innerouter分别是求index的交集和并集,left是以左数据的index为基准,而right则是以右数据的index为基准。由此推断,merge的参数how也有同样的leftright,请同学们测试。

小结

本文首先对groupby的分组聚合方式进行了研究,之后对于两个数据框架的级联关系进行了探索。从结果来看,级联事实上分三类,一是用concat进行操作,它可以对多个数据框架进行级联,二是用merge进行数据合并,它可以对有重合列名的两部分数据进行合并,三是用join方式,它可以对index有重合的部分进行数据拼接。

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

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

相关文章

acwing2019. 拖拉机(最短路径)

题目描述:(边权只有0和1的最短路径问题) 可以走出矩阵 点权{走障碍物:1,不走障碍物:0} 最短路径=路径上障碍物的数量 双端队列:0的时候入队首,1的时候入队尾(只能出队一次,但可以入队很多次) 双端队列的前半段是全为0,后半段全为1. bfs(实际上是一种迪杰斯特拉算法…

有关Quartz.NET,与一线码农大佬对个线?

跟[一线码农大佬]翻译的某技术文对个线最近看到一线码农大佬翻译的《如何在 ASP.NET Core 中使用 Quartz.NET 执行任务调度》,行文思路:安装Quartz.NETQuartz.NET 中的Job,triggers 和 Schedulers创建 Scheduler开启和停止 scheduler创建 job 工厂创建 J…

真的,太多人辜负了.NET5!

.NET5发布一个月了,有没有动手试试?Windows服务器Visual Studio SQL Server做跨平台开发?那你真的辜负了这个时代!强烈建议尝试下Linux,不仅是程序部署,而是全Linux环境开发、运行、部署.NET 5项目&#x…

总结 Visual Studio 2019 发布以来 XAML 工具的改进

不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了。虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容总是,always,每次都只有一点点。其实 Xamarin 相关的内容有在使劲地更新,不过和我做…

与您相约.NET Conf China 2020! 新进2位重磅嘉宾

2020年12月19日由.NET众多社区联合组织主办的2020年中国.NET开发者大会将于苏州盛大开幕,明天将发布大会的直播方案,敬请关注。时间:2020/12/19-12/20主题:开源、共享、创新地点:苏州人工智能产业园本次大会以“开源、…

层与特征融合_【计算机系统应用】(第122期)感受野特征增强的 SSD 目标检测算法...

点击上方“蓝字”,关注我们吧!目标检测是计算机视觉领域的一项重要任务, 是 生活中如实例分割[1] , 面部分析[2] , 汽车自动驾驶[3]、视 频分析[4] 等各种视觉应用的先决条件. 近些年, 伴随着深度卷积神经网络的充分发展[5] 以及良好的数据集注释先验工作…

一个基于.Net 5开发的轻量级Quartz配置中心 - QuartzCore.Blazor

项目简介QuartzCore.Blazor 是一个基于 .Net5 开发的轻量级 Quartz 作业配置中心,实践应用 Ant Design Blazor 和 FreeSql 两个技术, 对这两个技术感兴趣的小伙伴可以加我一起学习讨论哦,对有 Quartz 有需求的小伙伴亦可以开箱即用Code First…

如何开启jvm日志_做了10个小实验:搞懂了JVM三大参数类型

本实验的目的是讲解 JVM 的三大参数类型。在JVM调优中用到的最多的 XX 参数,而如何去查看和设置 JVM 的 XX 参数也是调优的基本功,本节以实验的方式讲解 JVM 参数的查看和设置。希望大家能有所启发。标配参数常见标配参数-version,获取JDK版本…

xilinx7中管脚mrcc和srcc_Xilinx 7系列FPGA架构之SelectIO结构(一)

引言:从本文开始我们介绍Xilinx 7系列FPGA的SelectIO资源结构及使用,我们在进行FPGA外设硬件及软件设计时,如ADC、PHY、DDR3等,通常会涉及到该资源。本节我们介绍以下知识点:SelectIO资源概述及结构SelectIO管脚通用设…

IdentityServer4系列 | 混合模式

一、前言在上一篇关于授权码模式中, 已经介绍了关于授权码的基本内容,认识到这是一个拥有更为安全的机制,但这个仍然存在局限,虽然在文中我们说到通过后端的方式去获取token,这种由web服务器和授权服务器直接通信,不需要经过用户的…

3m格式的文件怎么转换成mp3_一招就能让PDF与其他格式文件相互转换,这样的大招你值得拥有...

大家都知道,现在不少的大佬比起用Word、Excel等等这些格式文件,它们更喜欢使用PDF文件。而我们不管是将Word、Excel等文件转换成PDF,还是将PDF转换成其他格式文件,都是一件麻烦事,更别说在手机上操作这一切了。别担心&…

如何使用 C# 中的 Tuple

开局一张图,首先声明的是 Tuple 不是什么新鲜概念,在编程语言 F#,Python 中早就有这个了,Tuple 是一种 有序的,有限不可变的,支持混杂类型的固定个数的 一种数据结构,有些朋友可能就想问了&…

中设置colorbar_【值得收藏】如何画出学术论文中需要的各种精美插图,看这一篇就够了!...

本文整理自知乎问答,仅用于学术分享,著作权归作者所有。如有侵权,请联系后台作删文处理。方法一作者|冯昱尧https://www.zhihu.com/question/21664179/answer/18928725强烈推荐 Python 的绘图模块 matplotlib: python plotting 。…

GraphQL:Descriptor Attributes

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进&#xff0c…

idea怎么把代码放到git_在IDEA中如何初始化Git,把项目推送到Git上

在IDEA中如何初始化Git,把项目推送到Git上登录Gitee(码云)账号,新建仓库先按如下步骤简单新建一个仓库:创建成功后,会出现下图中所示的原始文件:在IDEA上的Terminal中进行操作注意:可能有些朋友刚打开Termi…

大会线上同步直播, 来不到现场也可以线上看直播,以及参会秘籍

紧急提醒:还有1天!2020.NET开发者大会就要开幕啦!你都做好参会准备没有?特殊时期,为方便小伙伴们顺利参会,小编特意整理了这篇大会参会攻略,大到各种日程安排、小到签到、出行、防疫等&#xff…

大曾幽默打油诗_这才是真正的幽默打油诗,逗人一笑,又引人深思!

阅读本文前,请您先点击上面的蓝色字体“点点星光”,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享。完全是免费订阅,请放心关注来源:诗词天地大曾 ,曾初良,也乐斋主&#xff0c…

编程去除背景绿幕抠图,基于.NET+OpenCVSharp

摘要:本文介绍了一种使用OpenCVSharp对摄像头中的绿幕视频进行实时“抠人像、替换背景”的方式,对于项目中的算法进行了分析。本文中给出了简化OpenCVSharp中Mat、MatExpr等托管资源释放的方法。本文还介绍了“高效摄像头播放控件”以及和OpenCVSharp的性…

.NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记

2.2.1 核心模块--依赖注入什么是依赖注入.NET Core DI 生命周期服务设计服务范围检查ASP.NET Core 依赖注入:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?viewaspnetcore-5.0什么是依赖注入Dependency injection 依赖注入Inv…

vue ref 绑定的事件需要移除吗_Vue易遗忘的基础复习(二)

数据请求Vue-resource请求在Vue2.0之后已经被舍弃2. fetch请求因为传统 Ajax (指 XMLHttpRequest)存在一些令人头疼的问题:配置和调用方式非常混乱,而且基于事件的异步模型写起来也没有现代的 Promise,generator/yield…