不知不觉,我们已经跨越了千难万险,从零开始,一步步揭开了Python神秘的面纱。学到至今,回过头,才晓得自己在不知不觉已经学会了如此多的东西:比如可以快速找到适合项目的编辑器;可以轻松运用变量、判断、循环、递归、库来高效解决问题,并进行代码优化;可以处理各类数据,并最终将分析结果导出。
那么今天,除了揭秘另外一种Pandas的合并方式,还将简单了解一下统计图表的绘制。最后一节课啦,我们即将跨过山峰,收获更辽阔的风景。
今天的内容比较简单,但扩展性强,有更高层次需要的小伙伴请自行学习拓展内容。
1merge合并上节课讲解了concat合并,这种合并方式多用于文件类型。还要一种合并方式,它常常被用于数据库数据处理,而数据库存放的信息那可都是非常重要的,说明它的可靠性更高,那么我们今天就来学习这种可靠的合并方法——merge。
首先创建两个数据集,创建方法和数据如下:
merge合并,参数有两个dataframe,重合的行列值,用on=""表示。
那么,如果有多个重合的行列怎么办呢,那就在on=""里面添加多个数据即可。
例如上面的两个数据集,它们的重合列是key1和key2,那么合并操作如下:
正如图中注释所言,剪切默认方法是inner,当然,也可以设置how=['left','right','outer']这几种。这里再展示left和right两种合并方式:
如果面对大量数据,我们非常希望能够更加直观地看到每一次合并数据变动情况,这样就能以更高的效率找到异常数据的位置,并进行修改。merge合并就有这样的功能,叫indicator。
首先我们再创建两个数据集:
然后使用indicator,使合并后创建一个新列,记录每一行的变更情况,具体操作如下图所示:
merge也可以通过index进行合并数据集:
既然支持index合并,那么相同的属性合并后并不会因为重名而“打架”,而是将它们全都重命名:
当然,要是我们提前给它们想好新的名字,也可以直接交给merge,使用suffixes字段。看图就明白啦。
2plot图表(了解)费劲九牛二虎之力,完成了数据的各种加工处理,如果你是员工,当然希望自己的老板表扬你,或者是让你老板认为你工作很认真——即使你效率高,有充足的事件摸鱼。
但是,当你拿着一堆数据给你的上司看,他肯定不屑一顾——上百万条数据,无论谁看都会头晕眼花,哪怕他是统计学高手,也受不起一条一条读数据这个工作量啊。
既然如此,我们需要让数据更直观展现出来,让所有人花最短时间get到数据的精髓,那么就得靠我们Python图表库的帮助了。
python图表库有很多,比如matplotlib,echarts等等,当然也有许多专业制图软件工具。今天我们以matplotlib.pyplot库为例,为大家抛砖引玉。当然,如果你觉得它不够酷,或者有其他用途(特别是web展示),那么极力推荐自学echatrs。
首先还是按照惯例,导入库:
介绍一个就简单的线型图:
这里注意两点:首先data=data.cumsum是求该样本的累计次数,并返回数据集data;其次data.plot()在jupyter notebook可以直接绘制图像,如果在vscode、pycharm、IDLE等环境,需要加写plt.show()调用绘图工具,进行显示。
一个数据集的多个项,一样可以在同一张图中绘制出来。
plot绘图支持条形图、箱型图、散点图、折线图、蜂窝图、区域图、饼图等。
下图是用上一个数据集进行绘制的散点图。
两张图也可以叠加成一张图:
本系列课程就到此已经完结啦,大家已经掌握了Python的全部基础知识,但这远远不够,它只是进入程序设计的第一扇门。
接下来,你将看到各种各样的程序设计方向和更多满足你奇思妙想的好帮手,同时我们也在努力开发全新的课程,一直陪在大家身边。
只可惜正如我刚才说过的,光是Python开发方向就有很多,涉及到的技术也数不胜数,我们也无法学会所有的知识。那么,今后到底想试试网站开发、还是爬虫、数据分析、计算机视觉、机器学习……欢迎大家与我们留言,我们尽全力满足大家的愿望!
当然,无论是哪个方向,都有更大、更多的艰难险阻等待着大家,也并不是所有的方向学习的东西完全不同。前路漫漫,道阻且长,希望大家在今后的学习生活中能够保持热情,勇敢面对挫折,为了超越昨天的自己而不断努力。
本系列课程到此完全结束,新课程即将上线,敬请期待。
青科工作室出品文:郭锦洋
审:谢寿春
你点的每个再看,我都认真当成了喜欢