当前位置: 首页 > 编程日记 > 正文

python pandas_Python库Pandas数据可视化实战案例

点击上方“爱好Python的胡同学”,选择“星标”公众号

每晚八点,Python干货,不见不散!21cb51fd3b58fe0027ef1a5824c68cc3.png

数据可视化可以让我们很直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,可以帮助我们更好的给他人解释现象,做到一图胜千文的说明效果。

常见的数据可视化库有:

  • matplotlib 是最常见的2维库,可以算作可视化的必备技能库,由于matplotlib是比较底层的库,api很多,代码学起来不太容易。

  • seaborn 是建构于matplotlib基础上,能满足绝大多数可视化需求。更特殊的需求还是需要学习matplotlib。

  • pyecharts 上面的两个库都是静态的可视化库,而pyecharts有很好的web兼容性,可以做到可视化的动态效果。

但是在数据科学中,几乎都离不开pandas数据分析库,而pandas可以做:

  • 数据采集:如何批量采集网页表格数据?

  • 数据读取:pd.read_csv/pd.read_excel

  • 数据清洗(预处理):理解pandas中的apply和map的作用和异同

  • 可视化,兼容matplotlib语法(今天重点)

准备工作

如果你之前没有学过pandas和matpltolib,我们先安装好这几个库

!pip3 install numpy!pip3 install pandas!pip3 install matplotlib

已经安装好,现在我们导入这几个要用到的库。使用的是伦敦天气数据,一开始我们只有12个月的小数据作为例子

#jupyter notebook中需要加这行代码%matplotlib inlineimport matplotlib.pyplot as pltimport numpy as npimport pandas as pd#读取天气数据df = pd.read_csv('data/london2018.csv')df

651931da45807269b9116a7b182bcb32.png

plot最简单的图

选择Month作为横坐标,Tmax作为纵坐标,绘图。

大家注意下面两种写法

#写法1df.plot(x='Month', y='Tmax')plt.show()

c6dcaf45f0f29a1b6194175d90ad9760.png

  • 横坐标轴参数x传入的是df中的列名Month

  • 纵坐标轴参数y传入的是df中的列名Tmax

折线图

上面的图就是折线图,折线图语法有三种

  • df.plot(x='Month', y='Tmax')

  • df.plot(x='Month', y='Tmax', kind='line')

  • df.plot.line(x='Month', y='Tmax')

df.plot.line(x='Month', y='Tmax')plt.show()

c6dcaf45f0f29a1b6194175d90ad9760.png

#grid绘制格线df.plot(x='Month', y='Tmax', kind='line', grid=True)plt.show()

e0f976e8e0d6914e7351ba7fb8a68b44.png

多个y值

上面的折线图中只有一条线, 如何将多个y绘制到一个图中,比如Tmax, Tmin。

df.plot(x='Month', y=['Tmax', 'Tmin'])plt.show()

07525f91c0a4addb4c1a700be6d62c77.png

条形图
df.plot(x='Month',        y='Rain',        kind='bar')#同样还可以这样画#df.plot.bar(x='Month', y='Rain')plt.show()

6749f9e22e4ac5de6434ae555e5883f7.png

水平条形图

bar环卫barh,就可以将条形图变为水平条形图

df.plot(x='Month',        y='Rain',        kind='barh')#同样还可以这样画#df.plot.bar(x='Month', y='Rain')plt.show()

5fc556c744e7b7637cb38ea08c040bf6.png

多个变量的条形图

df.plot(kind='bar',        x = 'Month',       y=['Tmax', 'Tmin'])plt.show()

2f7004efae6f75c86698c6604ec1737f.png

散点图
df.plot(kind='scatter',        x = 'Month',        y = 'Sun')plt.show()

49184e62a797efcb76556ecc0fd47f19.png

饼形图
df.plot(kind='pie', y='Sun')plt.show()

0823bdca019fbc202ec9a07c7730a697.png

上图绘制有两个小问题:

  • legend图例不应该显示

  • 月份的显示用数字不太正规

df.index = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']df.plot(kind='pie', y = 'Sun', legend=False)plt.show()

8f6f0da15862ea99dacf38b62b2dfa47.png

更多数据

一开头的数据只有12条记录(12个月)的数据,现在我们用更大的伦敦天气数据

import pandas as pddf2 = pd.read_csv('data/londonweather.csv')df2.head()

6279958e629d1b196d8e5137ec07cb23.png

df2.Rain.describe()count    748.000000mean      50.408957std       29.721493min        0.30000025%       27.80000050%       46.10000075%       68.800000max      174.800000Name: Rain, dtype: float64

上面一共有748条记录, 即62年的记录。

箱型图
df2.plot.box(y='Rain')#df2.plot(y='Rain', kind='box')plt.show()

fcfe85d64bbeace0b28e51fa7e7db810.png

直方图
df2.plot(y='Rain', kind='hist')#df2.plot.hist(y='Rain')plt.show()

a9b4d07da080a3852dfcc9ef97886eb3.png

纵坐标的刻度可以通过bins设置

df2.plot(y='Rain', kind='hist', bins=[0,25,50,75,100,125,150,175, 200])#df2.plot.hist(y='Rain')plt.show()

8f5fe57c9cf9300a35eef7cf12d5215e.png

多图并存
df.plot(kind='line',         y=['Tmax', 'Tmin', 'Rain', 'Sun'], #4个变量可视化         subplots=True,   #多子图并存         layout=(2, 2),   #子图排列2行2列         figsize=(20, 10)) #图布的尺寸plt.show()

a644c5ba672b6e0de9d11f5a4ab41efd.png

df.plot(kind='bar',         y=['Tmax', 'Tmin', 'Rain', 'Sun'], #4个变量可视化         subplots=True,   #多子图并存         layout=(2, 2),   #子图排列2行2列         figsize=(20, 10)) #图布的尺寸plt.show()

319478df3764c2e90888e1cde37e89a4.png

加标题

给可视化起个标题

df.plot(kind='bar',         y=['Tmax', 'Tmin'], #2个变量可视化         subplots=True,   #多子图并存         layout=(1, 2),   #子图排列1行2列         figsize=(20, 5),#图布的尺寸         title='The Weather of London')  #标题plt.show()

5c5eb3bd473ba71ebf4d74595a952133.png

保存结果

可视化的结果可以存储为图片文件

df.plot(kind='pie', y='Rain', legend=False, figsize=(10, 5), title='Pie of Weather in London')plt.savefig('img/pie.png')plt.show()

fd791f80efc5cd2a21d95a75911e852d.png

df.plot更多参数

df.plot(x, y, kind, figsize, title, grid, legend, style)

  • x 只有dataframe对象时,x可用。横坐标

  • y 同上,纵坐标变量

  • kind 可视化图的种类,如line,hist, bar, barh, pie, kde, scatter

  • figsize 画布尺寸

  • title 标题

  • grid 是否显示格子线条

  • legend 是否显示图例

  • style 图的风格

查看plot参数可以使用help

import pandas as pdhelp(pd.DataFrame.plot)

1ea66c55f3252775b5030b74c526bf8d.png

End.

来源:大邓和他的Python

推荐阅读

腾讯视频 Python 爬虫项目实战

推荐 13 个 Python 新手练级项目

Python 从业十年是种什么体验?

干货 | 18个 Python 高效编程技巧

写出一手Python烂代码的 19 条准则

最强编辑器 PyCharm 最全使用指南!

机器学习训练秘籍(完整中文版)PDF下载

4个Python实战项目,让你瞬间读懂Python!

1年工作经验,拿下今日头条 Python 开发面经分享

aff7a0f097beab4d6dcd986b8e29a1ff.png100d5a989b7d2d98b28060de60f6ab65.png

扫码关注,

每晚八点,Python日报,不见不散!

相关文章:

inconfont 字体库应用

先去注册个号码,好像只可以用新浪微博登录哈,搞一个微博去。 第一就是点上面图标库,选择官方和所有都行。 恩接着点一个图标,他就自己跑到 第二个按钮哪里去了,在点第二个按钮,会出来一个创建项目&#xff…

deepin初试与file browser使用小结

①c盘也可以弄压缩盘安装deepin啊 ②deepin硬盘格式Windows看不见,而在deepin中Windows硬盘可以看见 ③安装完deepin如果直接进入了win10,其实不用费这么大劲搞来搞去,比如修复uefi easyuefi什么的 直接关闭win10的快速启动 然后用easybcd 弄个引导(grup2)就行 很简单 ④dee…

iptables工具__过滤包—命令

iptables工具__过滤包—命令(-A、-I、-D、-R、-L等)、参数(-p、-s、-d、--sport、--dport、-i、-o等)、动作-j (ACCEPT、DROP、REJECT、REDIRECT等) iptables 指令语法:iptables [-t table] command [match] [-j target/jump]-t 参数用来指定规则表,内建…

2018-3-5(论文——网络中非结构信息的表示与应用)笔记二 (歧义词,未登录词,禁用词)

1.文本的词性标注 词性作为一种语义特征通常:名词 n 动词 v 副词 d 连词 c 形容词 a 通过使用自动标注器,完成文本的标注。 2.歧义词 -----汉字处理 按照偏正结构,汉字通常是形容词在前名词(中心…

PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022

PBR游戏3D模型捆绑包2022年2月 大小解压后:6.99G MAX| OBJ | FBX |TEX 模型获取:PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022-云桥网 包括: 500马格南定制左轮手枪 ACV-15 加法机 模拟无线电A16-PRC316 陆军奔驰 巴雷特PRC-2080战术…

python编写用户输入的是q么代码_Python课 #01号作业

为了记录我的Python课,将我的作业发上来,欢迎各位大佬评鉴。如果你有什么更好的想法,请在下方评论或联系我。谢谢! 作业一:向某人打招呼 描述 程序接收用户输入的姓名,然后输出向该姓名问好的文字。 代码&a…

CPU(处理器)、内存、硬盘之间的关系

前面提到了,电脑之父——提出了计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。我们看一下现在我们电脑的: 键盘鼠标、显示器、机箱、音响等等。这里显示器为比较老的CRT显示器,现在一般都成功了液晶显示器。我们想一下,我们在玩电脑的时候,我们使用键盘鼠标来操作电脑,我们在和其他人QQ聊天的时候,鼠标可以帮我们选中聊天的人,打开聊天窗口,键盘则是负责打字,帮我们输入聊天的内容。我们在操作键盘鼠标的时候,其实都是在告诉电脑来做什么的。我们管键盘和鼠标叫输入设备。向电脑输入数据和信息的设备。

复习笔记之母函数

HDU 1398 Square Coins 题意&#xff1a;给 17 种面值的钱币&#xff0c;分别为&#xff1a;1-4-9-。。。-17^2.问 x&#xff08;x < 300) 能有多少种不同的兑换方式。 思考&#xff1a;略~母函数简单模板题目。事实上还可以用完全背包来做。 1 #include <iostream>2 …

k8s搭建部署(超详细)

Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)可扩展: 模块化, 插件化, 可挂载, 可组合自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展。

通过anaconda2安装python2.7和安装pytorch

①由于官网下载anaconda2太慢&#xff0c;最好去byrbt下载&#xff0c;然后安装就行 ②安装完anaconda2会自动安装了python2.7&#xff08;如终端输入python即进入python模式&#xff09; 但是可能没有设置环境变量&#xff0c;导致conda命令找不到 解决方案&#xff1a;http…

JavaScript服务器端开发基础之Math对象小结

JavaScript提供基础的算术运算符来实现对算术运算的支持&#xff0c;例如加法运算符&#xff0c;减法运算符-&#xff0c;乘法运算符*&#xff0c;除法运算符/和求余运算符%。此外&#xff0c;还支持复杂的算术运算&#xff0c;这是通过作为Math对象的属性定义的函数和常量来实…

2018-3-5 (论文—网络评论中结构化信息处理的应用于研究)笔记三(互信息,信息增益,期望交叉熵,基于词频的方法,CHI统计)

传统的特征提取的方法&#xff1a; 1.互信息量&#xff08;Mutual Information MI&#xff09;&#xff1a;评估零个随机变量相关程度&#xff08;数组额上离散使用了累加&#xff0c;而连续是积分&#xff09; 百度&#xff1a;互信息_百度百科https://baike.baidu.com/item/%…

艺术站-卡通和风格化的HDRI天空

卡通和风格化游戏的新HDRI天空纹理。大小解压后&#xff1a;576M 目前&#xff0c;pack拥有28个独特的HDRI天空变体。每个天空的分辨率为40962048像素。 格式纹理:png&#xff0c;HDR 素材获取&#xff1a;艺术站-卡通和风格化的HDRI天空-云桥网 skybox的各种变体:夜晚、白天、…

Code Forces Bear and Forgotten Tree 3 639B

B. Bear and Forgotten Tree 3 time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output A tree is a connected undirected graph consisting of n vertices and n - 1 edges. Vertices are numbered 1 throu…

opencv处理dicom图像_图像处理|opencv| 利用opencv把照片变换成素描风格

大家好我是阿猩学长&#xff0c;今天给大家利用图像处理库opencv来把图片转换为素描的风格。其中利用的编程语言为C。话不多说先给大家看看实际的效果图。原图处理后的图片原图效果图下面先给大家介绍一下大概的编程思路&#xff0c;再结合代码给大家分析首先将彩色图转换成灰度…

【实验楼】python简明教程

①终端输入python进入 欣赏完自己的杰作后&#xff0c;按 Ctrl D 输入一个 EOF 字符来退出解释器&#xff0c;你也可以键入 exit() 来退出解释器。 ②vim键盘快捷功能分布 ③这里需要注意如果程序中没有 #!/usr/bin/env python3 的话&#xff0c;应该使用 python3 hellowor…

Class101–如何高效地构建强大的数字绘画

你有没有对一幅画有过很好的想法&#xff0c;但不知道如何开始或努力完成这个过程&#xff1f;这门课的目的是给你工具和理解&#xff0c;帮助你把想法变成现实。 所有你需要知道的基本知识。 本课程将涵盖颜色和光线的基本原理、透视构图以及使你的过程高效可靠的高级技巧。 …

java nextline_Java编程语言基础的9根支柱

Java编程的基础概念包括&#xff1a;数据类型&#xff0c;分支与循环等。1.HelloWorld先从最简单的Java程序开始&#xff1a;public class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld")&#xff1b; }}最显眼…

js 验证码 倒计时60秒

<input type"button" id"btn" value"免费获取验证码" /> <script type"text/javascript"> var wait60; function time(o) { if (wait 0) { o.removeAttribute("disabled"); …

JAVA安装全过程

安装JDK 设置环境变量 安装eclipse &#xff08;安装前面需要上VPN 后面再退VPN&#xff09; 一般流程&#xff1a;https://blog.csdn.net/weixin_40922936/article/details/80647371

前端(移动端)开发利器Chrome Developer Tools秘籍(下)

之前有分享到我们可以通过 Command Line API 来提高我们的开发效率。除此之外&#xff0c;还有一些比较有趣的快捷键和调试方法&#xff0c;也能帮助提高大家的生产效率。 几个小事项&#xff1a; 1.文中提到的快捷键 command 在WIN下都是对应Ctrl&#xff1b; 2.当焦点在dev t…

李宏毅机器学习笔记六——Gradient Descent

视频来源&#xff1a; 李宏毅机器学习(2017)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili.com/video/av10590361/?p6使用GD的注意事项&#xff1a; &#xff08;1&#xff09;小心的调节Learning rate在因材设计不同的learning rate的时候采用的主要方法&…

UE5废墟破坏游戏场景创建学习教程

为游戏创建毁坏的资产–深入教程课程 了解一个专业的环境艺术家在为游戏创建毁坏的资产时是如何工作的。您将学习正确的资产规划、创建模块化资产、创建损坏的混凝土和柱子、创建损坏的木材/地板、创建碎石堆、模拟碎片等技术&#xff01; 大小解压后&#xff1a;26G 包含项目…

傻瓜式动画制作软件_一个傻瓜版的动画制作软件——万彩动画大师

之前介绍了文字视频的制作软件&#xff0c;但后来发现太单一了&#xff0c;后面又找到了这款动画视频制作软件——万彩动画大师首先来看看软件的首页有很多的模板&#xff0c;还有企业版、教育版、个人版&#xff0c;有很多的选择&#xff0c;有横版的、有竖版的&#xff0c;来…

每个程序员都需要学习 JavaScript 的7个理由

最近在和招聘经理交流现在找一个好的程序员有多难的时候&#xff0c;我渐渐意识到了现在编程语言越来越倾重于JavaScript。Web开发人员尤其如此。所以&#xff0c;如果你是一个程序员&#xff0c;那么你应该去学习JavaScript。 需求 我之所以这样说的主要原因是&#xff0c;随着…

【解决方法】你已从聊天服务器断开,正在尝试重新连接

打开360软件管家搜索断网急救箱修复然后上游戏就好了 360邪恶力量 还真就这么神奇0.0 目测是host文件设置问题

linux 修改home 目录

第一种方法&#xff1a;vi /etc/passwd  找到要修改的用户那几行&#xff0c;修改掉即可。此法很暴力&#xff0c;建议慎用。  /etc/passwd文件格式  登录名&#xff1a;加密口令&#xff1a;数字用户ID:数字组ID:注释字段&#xff1a;起始目录&#xff1a;shell程序  …

2018-3-6论文-网络评论中非结构化信息的应用于研究------(语义矩离)

语义矩离 用来描述特征词之间的语义相似度。 常用的计算方法主要有&#xff1a; 根据同义词词典求2个词语编码的矩离 在文章中使用了哈工大的《同义词词林》扩展版 &#xff08;1&#xff09;每个词有若干个编码&#xff0c;每个编码有5层代码和1位标志位描述…

Blender 3.0基础入门学习教程 Introduction to Blender 3.0

成为Blender通才&#xff0c;通过这个基于项目的循序渐进课程学习所有主题的基础知识。 你会学到什么 教程获取&#xff1a;Blender 3.0基础入门学习教程 Introduction to Blender 3.0-云桥网 模拟一架基本喷气式飞机 雕刻高细节 重组学 展开UV 绘画和阴影 使喷射动画化 制造天…