pandas数据处理之绘图的实现


Posted in Python onJune 15, 2020

Pandas是Python中非常常用的数据处理工具,使用起来非常方便。它建立在NumPy数组结构之上,所以它的很多操作通过NumPy或者Pandas自带的扩展模块编写,这些模块用Cython编写并编译到C,并且在C上执行,因此也保证了处理速度。

今天我们就来体验一下它的强大之处。

1.创建数据

使用pandas可以很方便地进行数据创建,现在让我们创建一个5列1000行的pandas DataFrame:

mu1, sigma1 = 0, 0.1
mu2, sigma2 = 0.2, 0.2
n = 1000df = pd.DataFrame(
  {
    "a1": pd.np.random.normal(mu1, sigma1, n),
    "a2": pd.np.random.normal(mu2, sigma2, n),
    "a3": pd.np.random.randint(0, 5, n),
    "y1": pd.np.logspace(0, 1, num=n),
    "y2": pd.np.random.randint(0, 2, n),
  }
)
  • a1和a2:从正态(高斯)分布中抽取的随机样本。
  • a3:0到4中的随机整数。
  • y1:从0到1的对数刻度均匀分布。
  • y2:0到1中的随机整数。

生成如下所示的数据:

pandas数据处理之绘图的实现

2.绘制图像

Pandas 绘图函数返回一个matplotlib的坐标轴(Axes),所以我们可以在上面自定义绘制我们所需要的内容。比如说画一条垂线和平行线。这将非常有利于我们:

1.绘制平均线

2.标记重点的点

import matplotlib.pyplot as plt
ax = df.y1.plot()
ax.axhline(6, color="red", linestyle="--")
ax.axvline(775, color="red", linestyle="--")
plt.show()

pandas数据处理之绘图的实现

我们还可以自定义一张图上显示多少个表:

fig, ax = plt.subplots(2, 2, figsize=(14,7))
df.plot(x="index", y="y1", ax=ax[0, 0])
df.plot.scatter(x="index", y="y2", ax=ax[0, 1])
df.plot.scatter(x="index", y="a3", ax=ax[1, 0])
df.plot(x="index", y="a1", ax=ax[1, 1])
plt.show()

pandas数据处理之绘图的实现

3.绘制直方图

Pandas能够让我们用非常简单的方式获得两个图形的形状对比:

df[["a1", "a2"]].plot(bins=30, kind="hist")
plt.show()

pandas数据处理之绘图的实现

还能允许多图绘制:

df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True)
plt.show()

pandas数据处理之绘图的实现

当然,生成折线图也不在画下:

df[['a1', 'a2']].plot(by=df.y2, subplots=True)
plt.show()

pandas数据处理之绘图的实现

4.线性拟合

Pandas还能用于拟合,让我们用pandas找出一条与下图最接近的直线:

pandas数据处理之绘图的实现

最小二乘法计算和该直线最短距离:

df['ones'] = pd.np.ones(len(df))
m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]

根据最小二乘的结果绘制y和拟合出来的直线:

df['y'] = df['index'].apply(lambda x: x * m + c)
df[['y', 'y1']].plot()
plt.show()

pandas数据处理之绘图的实现

到此这篇关于pandas数据处理之绘图的实现的文章就介绍到这了,更多相关pandas 绘图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 深入理解yield
Sep 06 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
wxPython实现文本框基础组件
Nov 18 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
Python递归函数特点及原理解析
Mar 04 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
keras中的loss、optimizer、metrics用法
Jun 15 #Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 #Python
基于python和flask实现http接口过程解析
Jun 15 #Python
基于nexus3配置Python仓库过程详解
Jun 15 #Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 #Python
在keras里面实现计算f1-score的代码
Jun 15 #Python
Python流程控制语句的深入讲解
Jun 15 #Python
You might like
SONY SRF-M100的电路分析
2021/03/02 无线电
MySQL中create table语句的基本语法是
2007/01/15 PHP
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
php 禁止页面缓存输出
2009/01/07 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
node.js中watch机制详解
2014/11/17 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
微信小程序使用Socket的实例
2017/09/19 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
python实现人脸签到系统
2020/04/13 Python
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
农村葬礼主持词
2014/03/31 职场文书
社团活动总结范文
2014/04/26 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
远程教育学习心得体会
2016/01/23 职场文书
数据库连接池
2021/04/06 MySQL