python dataframe 新列_Python第二十四课:Pandas库(四)

47e61d1d488197611749cf3c939777b2.pngPython第二十四课:Pandas库(四)2992a5d824186b787ed7538ae5035088.png点击上方“蓝字”,关注我们.8644b6bc702376b18052f80808b76080.png

不知不觉,我们已经跨越了千难万险,从零开始,一步步揭开了Python神秘的面纱。学到至今,回过头,才晓得自己在不知不觉已经学会了如此多的东西:比如可以快速找到适合项目的编辑器;可以轻松运用变量、判断、循环、递归、库来高效解决问题,并进行代码优化;可以处理各类数据,并最终将分析结果导出。

那么今天,除了揭秘另外一种Pandas的合并方式,还将简单了解一下统计图表的绘制。最后一节课啦,我们即将跨过山峰,收获更辽阔的风景。

3754d2e6f67c8f59b0a59cca23218325.png

今天的内容比较简单,但扩展性强,有更高层次需要的小伙伴请自行学习拓展内容。

ddd83767c2985f6328688ffe07e46eb4.png1merge合并

上节课讲解了concat合并,这种合并方式多用于文件类型。还要一种合并方式,它常常被用于数据库数据处理,而数据库存放的信息那可都是非常重要的,说明它的可靠性更高,那么我们今天就来学习这种可靠的合并方法——merge。

首先创建两个数据集,创建方法和数据如下:

ca43f256998ad10be72cd08d8042efde.png

merge合并,参数有两个dataframe,重合的行列值,用on=""表示。

7ec9ba0d28da28911c4d699bd7ad3144.png

那么,如果有多个重合的行列怎么办呢,那就在on=""里面添加多个数据即可。

d28a5fac76898308d63e57d213822273.png

例如上面的两个数据集,它们的重合列是key1和key2,那么合并操作如下:

b888be94e896b8034d51bb05971b8038.png

正如图中注释所言,剪切默认方法是inner,当然,也可以设置how=['left','right','outer']这几种。这里再展示left和right两种合并方式:

6673debbd6b11bc4dafdaa08053e9735.png

如果面对大量数据,我们非常希望能够更加直观地看到每一次合并数据变动情况,这样就能以更高的效率找到异常数据的位置,并进行修改。merge合并就有这样的功能,叫indicator。

首先我们再创建两个数据集:

f45920e586c1973899fd6b4ea3787180.png

然后使用indicator,使合并后创建一个新列,记录每一行的变更情况,具体操作如下图所示:

6440e14d9b192c30404e5587044e234e.png

merge也可以通过index进行合并数据集:

ef42c729d53f0ac207a70130d6c7caa4.png

既然支持index合并,那么相同的属性合并后并不会因为重名而“打架”,而是将它们全都重命名:

f066050c2bbf453a142739166e67f493.png

当然,要是我们提前给它们想好新的名字,也可以直接交给merge,使用suffixes字段。看图就明白啦。

d1b72d81d9b9caa36e8b9cbe94aa8802.png

2plot图表(了解)

费劲九牛二虎之力,完成了数据的各种加工处理,如果你是员工,当然希望自己的老板表扬你,或者是让你老板认为你工作很认真——即使你效率高,有充足的事件摸鱼。

但是,当你拿着一堆数据给你的上司看,他肯定不屑一顾——上百万条数据,无论谁看都会头晕眼花,哪怕他是统计学高手,也受不起一条一条读数据这个工作量啊。

既然如此,我们需要让数据更直观展现出来,让所有人花最短时间get到数据的精髓,那么就得靠我们Python图表库的帮助了。

python图表库有很多,比如matplotlib,echarts等等,当然也有许多专业制图软件工具。今天我们以matplotlib.pyplot库为例,为大家抛砖引玉。当然,如果你觉得它不够酷,或者有其他用途(特别是web展示),那么极力推荐自学echatrs。

首先还是按照惯例,导入库:

47c5602277d90600fb197f7e4664407a.png

介绍一个就简单的线型图:

2821890fbaf64499de3b097e8722542b.png

这里注意两点:首先data=data.cumsum是求该样本的累计次数,并返回数据集data;其次data.plot()在jupyter notebook可以直接绘制图像,如果在vscode、pycharm、IDLE等环境,需要加写plt.show()调用绘图工具,进行显示。

一个数据集的多个项,一样可以在同一张图中绘制出来。

f17c640407671629aef936cabd469170.png

plot绘图支持条形图、箱型图、散点图、折线图、蜂窝图、区域图、饼图等。

下图是用上一个数据集进行绘制的散点图。

091ca3d50c4345acac23a950475c0f64.png

两张图也可以叠加成一张图:

4b26e385d75222820030f11030c92678.png

deb6517cf38821c7f4daa5231699f9bf.gif

本系列课程就到此已经完结啦,大家已经掌握了Python的全部基础知识,但这远远不够,它只是进入程序设计的第一扇门。

接下来,你将看到各种各样的程序设计方向和更多满足你奇思妙想的好帮手,同时我们也在努力开发全新的课程,一直陪在大家身边。

只可惜正如我刚才说过的,光是Python开发方向就有很多,涉及到的技术也数不胜数,我们也无法学会所有的知识。那么,今后到底想试试网站开发、还是爬虫、数据分析、计算机视觉、机器学习……欢迎大家与我们留言,我们尽全力满足大家的愿望!

当然,无论是哪个方向,都有更大、更多的艰难险阻等待着大家,也并不是所有的方向学习的东西完全不同。前路漫漫,道阻且长,希望大家在今后的学习生活中能够保持热情,勇敢面对挫折,为了超越昨天的自己而不断努力。

本系列课程到此完全结束,新课程即将上线,敬请期待。

d730c88d42f92ca09b7eb108cb6b6f72.png

青科工作室出品6f29fde6fc17cf0f45001a7fb7074f40.png0527e97201436adbf2435f6882b04670.png

文:郭锦洋

审:谢寿春

0527e97201436adbf2435f6882b04670.png6e7b27cfb0fae370f8d3f886635f96c7.png你点的每个再看,我都认真当成了喜欢

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

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

相关文章

Sharepoint 2010 应用范围

应用范围:入口網站 (Site) 、 協同合作 (Community) 、 內容管理 (Content) 、 企業搜尋 (Search) 、 商業智慧 (Insight) 、 商業流程 (Composite) use: http://www.microsoft.com/taiwan/casestudies/products/moss.aspx# http://www.microsoft.com/taiwan/sharep…

Visual Studio 2005结合Direct 9.0 SDK(Aug2007)时应该注意的事项

要用DX SDK开发DX程序必然要用VC 6.0或者VS。但是现在的DX SDK VC 6.0已经不能胜任了,一般都是用VS2003或者VS2005来进行开发。 昨天,我开始搭建开发环境(前次弄好了但是GHOST还原了就没了……),但是直到晚上十点多宿舍…

python opencv录制视频_如何使用OpenCV和Python录制视频?

我已经看过OpenCV的Python example介绍了如何使用VideoCapture和VideoWriter来捕获和写出视频文件。但我一直在想:OpenCV Error: Assertion failed (dst.data dst0.data) in cvCvtColor, file /tmp/opencv-n8PM/opencv-2.4.7.1/modules/imgproc/src/color.cpp, lin…

springboot mysql脚本_springboot配置mysql连接的实例代码

一:导入pmo.xm配置包mysql库连接、druid连接池、mybatis组件mysqlmysql-connector-javaruntimecom.alibabadruid-spring-boot-starter1.1.10org.mybatis.spring.bootmybatis-spring-boot-starter${mybatis.version}配置扫描文件src/main/java**/ *.xmltruesrc/main/…

win7里运行命令

Windowsr:打开“运行” 在“运行”里输入:services.msc 则打开服务转载于:https://www.cnblogs.com/echonn/archive/2012/09/27/2706416.html

编译pjsip2.0 + SDL 1.3

1第一步编译 SDL 1.3 安装Microsoft DirectX SDK (June 2010)编译: 错误,把D3DMATRIX提前到函数的变量声明前面。 1>d:\project\01_voip\sdl-1.3\sdl-1.3.0-6235\src\render\direct3d\sdl_render_d3d.c(593): error C2275: “D3DMATRIX”:将此类型用…

hashmap 遍历_别慌,送你21 个面试官必问HashMap考点

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:菜鸟小于来源:https://www.cnblogs.com/Young111/p/11519952.html1:HashMap 的数据结构?A:哈希表结构(链表散列:数组链表)实现,…

ffmpeg遇到inttypes.h和UINT64_C

编译过程:错误一:无法打开包括文件:“inttypes.h”: No such file or directory解决方法:删除之,并在其之前添加如下代码: #if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__) # …

redis storm mysql_storm-redis 详解

多的不说,先来代码分析,再贴我自己写的代码。如果代码有错误,求更正。。导入两个关键包,其他项目需要的包,大家自己导入了,我pom下的包太多,不好一下扔上来。org.apache.stormstorm-redis${stor…

22套精美的网页按钮图标设计推荐(包括PSD和AI文件)

图标是一个简单的单色符号,表示对象的基本形状。字形被广泛地使用在我们周围的公共场所,如机场和商场或购物中心。在网页设计当中,他经常会被使用,用来展示每个元素代表的意思,他简洁大方,一目了然&#xf…

轻gc和重gc分别在什么时候发生_GC发展与现状

GC发展Java不像C或C那样,需要程序员在编程的过程中,时刻注意申请内存保存对象,在对象使用完成后,要在合适的时机将对象占用的内存释放掉(析构函数);Java得意与内部的三大机制,保证了程序开发方便&#xff1…

解决VC不包含stdint.h头文件问题

stdint.h是C99的标准,主要用于统一跨平台数据定义。 MSVC中不带有这个头文件,直到VS2010(新闻)。 在之前的版本里面,我们可以: (1)下载这个头文件 download a MS version of this …

hibernate mysql 性能_MyBatis和Hibernate相比,优势在哪里?

MyBatis和Hibernate相比,优势在哪里?发布时间:2020-06-07 22:57:08来源:51CTO阅读:435作者:qq5923dd411b8fa栏目:数据库1、开发对比开发速度hibernate的真正掌握要比Mybatis来得难些。Mybatis框…

nginx离线安装_web高可用-基于keepalived和nginx

一.体系架构在Keepalived Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟…

C#数组的合并拆分

1.合并拆分数组 ///<summary>///合并数组 ///</summary>///<param name"First">第一个数组</param>///<param name"Second">第二个数组</param>///<returns>合并后的数组(第一个数组第二个数组&#xff…

VC嵌入python时debug版lib下载

前些天发的一个随笔中得知python做界面很强&#xff0c;加之以前也听说过&#xff0c;所以学习了一下&#xff0c;主要想看看python和C的互操作以取长补短。 化了大约4天时间草草看了《Python编程金典》&#xff0c;觉得思想和Java的差不多&#xff0c;面向对象的思想和机制都…

php mysql 实现原理_php+mysql分页原理实现

完整代码如下&#xff1a;!htmlhead-"-type"";GBK"styletype"text/css"body{font-size:12px;font-family:verdana;width:100%;}div.page{text-align:center;}div.content{height:300px;}div.pagea{border:#aaaadd1pxsolid;text-decoration:none;…

Tiny6410上安装debian基本系统的过程

Tiny6410上安装debian基本系统的过程&#xff1a;注&#xff1a;debootstrap工具可以在已有的任何linux中使用&#xff0c;不过建议用debian或其衍生系统(如ubuntu等)&#xff0c;以下步骤可以在电脑上做&#xff0c;也可以直接在Tiny6410上做&#xff0c;不过很慢&#xff0c;…

python任意代码都可以缩进去_我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』...

最近的"平安经"可谓是引起了不小的风波啊。作为一个正儿八经的程序员&#xff0c;最害怕的就是自己的代码上线出现各种各样的 BUG。为此&#xff0c;明哥今天分享一个 Python 的黑魔法&#xff0c;教你如何在你执行任意 Python 代码前&#xff0c;让 Python 解释器自…

域用户更改密码提示拒绝访问_AD域中的ACL攻防探索

前言关于域内ACL的攻防近两年经常被人所提起&#xff0c;同时也产生了很多关于域内ACL相关的工具和攻击方式&#xff0c;本文将会从ACL的概念谈起&#xff0c;然后介绍几种不同的域内攻击方式以及如何监测和防御对于ACL的攻击。ACL的概念和作用ACM&#xff1a;首先想要了解ACL首…