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

不用写代码就能学用Pandas,适合新老程序员的神器Bamboolib

作者 | Rahul Agarwal

译者 | 陆离

编辑 | Jane

出品 | AI科技大本营(ID:rgznai100)

曾经,你有没有因为学习与使用 Pandas 进行数据检索等操作而感到厌烦过?

实现同样的功能,Pandas 给用户提供了很多种方法,不少老手开发者们在这么多选择下要乐开花了。但对于初学者来说,情况却恰好相反,即使是一个很简单的操作有时对于他们来说,理解 Pandas 语法可能都是件挺困难的事情。

那我们该怎么办呢?

Bamboolib 的开发者们提出了一个解决问题的好办法 —— 给 Pandas 增加一个 GUI。


我们希望大家“不用写任何代码也可以学习和使用 Pandas”,可以办到吗?接下来,本文就从数据设置及使用 Bamboolib 内容入手,带领大家一起体验这个新鲜奇妙之旅。

一、安装 Bamboolib

安装 Bamboolib 的方式非常简单,一键 pip

pip install Bamboolib


为了能让 Bamboolib 与 Jupyter 和 Jupyterlab 在一起运行,还需要安装一些额外的扩展插件,如通过以下的命令安装 Jupyter Notebook 的扩展包:

jupyter nbextension enable --py qgrid --sys-prefix
jupyter nbextension enable --py widgetsnbextension --sys-prefix
jupyter nbextension install --py Bamboolib --sys-prefix
jupyter nbextension enable --py Bamboolib --sys-prefix

二、验证 Bamboolib 是否安装成功

要检查是否安装成功,可以打开 Jupyter 记事本,并执行如下命令:

import Bamboolib as bam 
import pandas as pd 
data = pd.read_csv(bam.titanic_csv)
bam.show(data)

第一次运行这个命令的时候,系统将会要求你提供许可。如果要在 Bamboolib 上使用自己的数据,也需要许可。

Bamboolib 被激活后就可以开始使用了。大家可以通过以下的方式来查看 Bamboolib 的执行结果,还可以选择使用其它的一些选项。

现在,我们尝试在 Bamboolib 中用自己的数据源,看到了大量的 Titanic 数据。

这里使用的是 Kaggle 提供的手机价格分类数据(Mobile Price Classification data)。基于此问题,我们需要创建一个分类器:根据手机的特点来预测价格范围。

下面,正式从 Bamboolib 开始。

train = pd.read_csv("../Downloads/mobile-price-classification/train.csv") bam.show(train)

用一个 bam.show(train)的简单调用来启动 Bamboolib。

三、轻松进行数据检索

Bamboolib 对检索性数据分析有很大的帮助。现如今,数据检索是任何数据科学研究的重要组成部分。为了进行数据检索和创建所有的图表而编写代码是相当麻烦的,需要付出很多的时间和努力,Bamboolib 如何让整个数据检索工作变得轻而易举?

在 Bamboolib 中,如果点击“Visualize Dataframe”按钮的话,就可以得到以下的数据了,如下图所示:


我们会从上面的结果中看到每一列中的缺失值,以及唯一值和实例的数量。

但这还不够,我们还可以得到单变量列级的统计量和信息。然后,我们再深入了解一下目标变量——价格范围(Price Range)。

从这里深入到目标列,可以看到单变量列统计信息以及对于目标列的最重要的预测因素,看起来手机内存和电池电量是影响预测价格范围最重要的因素。

内存是如何影响价格范围的?可以用一个二元图来表示。

使用标准的 Python 库(如 seaborn 或 plotly)获得上面这么漂亮的图表通常都会需要一定的代码开发量。plotly_express 为大多数的图表绘制提供了一些简单的功能,但 Bamboolib 会自动为我们创建许多各种各样的图表。

从上面的图中,我们可以看到,随着手机内存容量的增加,价格范围也在不断地扩大。我们还看到内存变量的加权 F1 分数为 0.676。你可以对数据集里面的每个变量都执行这个操作,并尝试分析这些数据。

当然,还可以导出这些图表的代码,以便在某些文档展示中使用,这些图表导出的是 PNG 格式的文件。

上述操作只需复制显示在每个图表上方的代码片段即可。例如,可以通过运行导出的代码,以图表的形式展现 price_range 和 ram 这两个列,你就会看到一个将这些图表以 PNG 格式下载的选项。

bam.plot(train, 'price_range', 'ram')

四、基于 GUI 的数据挖掘

你有没有遇到过这样的情况:突然忘了某段 pandas 代码用来实现什么功能了,并且还出现了内存溢出,而且在不同的线程中找不到了。如果有的话,这里有一个 Pandas 的小窍门儿。

通过 Bamboolib,你要做的事情变得非常容易,并且不会被复杂的代码搞得晕头转向。通过使用简单的 GUI,你可以进行删除、筛选、排序、联合、分组、视图、拆分(大多数情况下,你希望对数据集执行的操作)等操作。

例如,这里我将删除目标列中的多个缺失值(如果有的话)。当然,还可以添加多个条件。

最好的功能就是,Bamboolib 也提供了代码。如下所示,用于删除缺失值的代码将会自动添加到单元格中。

train = train.loc[train['price_range'].notna()]
train.index = pd.RangeIndex(len(train))

其实它用起来就跟微软的 Excel 一样,还为高级用户提供了数据切片和分块的所有代码。你也可以根据自己的喜好使用 Bamboolib。

下面是一个使用排序的示例,看起来很直观。

代码如下:

train = train.groupby(['price_range']).agg({'battery_power': ['mean'], 'clock_speed': ['std']}) 
train.columns = ['_'.join(multi_index) for multi_index in train.columns.ravel()] 
train = train.reset_index()

你可以看到它是如何处理 multi_index 和 ravel 这两个列的。

结论

Bamboolib 的 GUI 做的非常直观,在工作中使用它绝对是一种乐趣。这个项目目前还处于初始阶段,但已经有了一个非常不错的开始。

确切地说,Bamboolib 对于那些想要学习使用 Pandas 来编写代码的初学者来说是非常有用的,让他们不费吹灰之力就可以访问到所有的函数。

同时大家也需要继续了解 Pandas 的一些基本功能,为了更好地学习 Pandas,也可以尝试大家多看一下使用 Bamboolib 之后的输出结果,让我们一起来期待未来 Bamboolib 还会发生哪些变化。

原文链接:

https://towardsdatascience.com/bamboolib-learn-and-use-pandas-without-coding-23a7d3a94e1

(*本文为AI科技大本营编译文章,转载微信联系 1092722531)

精彩公开课

推荐阅读

  • 动漫美少女生成神器、猫的门禁...2019年十七大最佳机器学习项目 |年度盘点①

  • 大四学生发明文言文编程语言,设计思路清奇

  • 芬兰开放“线上AI速成班”课程,全球网民均可免费观看

  • 腾讯 Angel 升级:加入图算法,支持十亿节点、千亿边规模!

  • 时间可以是二维的?基于二维时间图的视频内容片段检测 | AAAI 2020

  • 扎心了!互联网公司福利缩水指南

  • “对不起,我们只招有出色背景的技术人员!”

  • 2019中国区块链开发者大会圆满落幕!10大烧脑核心技术演讲干货全送上!

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

后海日记(8)

来深圳已经这么长时间了,深圳给我的感觉总体很好,天那么蓝,空气也很清新,总的来说很不错。 努力学习,早日成才。 加油!版权声明:本文为博主原创文章,未经博主允许不得转载。 转载于:…

反汇编算法介绍和应用——递归下降算法分析

上一篇博文我介绍了Windbg使用的线性扫描(linear sweep)反汇编算法。本文我将介绍IDA使用的递归下降(recursive descent)反汇编算法。(转载请指明来源于breaksoftware的csdn博客) 递归(recursiv…

如何快速get到AI工程师面试重点,这12道题必备!

作者 | JP Tech译者 | 刘畅编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】2020 年的三月春招要来了,现在想要 Get 一个算法工程师的实习或全职机会,已经不是一件易事了。如果现在着手复习,茫茫题海…

金邦黑金刚4G内存 VS Vista系统

我的机器配置是 Intel Core 2 4320CPU 金邦黑金刚2G DDR2 800*2 P965P-DS3主板 N 8600GTS 为什么在Vista中 只识别了3.5G 我升级了主版BIOS 主版最高支持8G,哎结果网上一看,才明白。。。现在的系统不是很好的支持4G的内存。…

程序员的量化交易之路(25)--Cointrader之MarketData市场数据实体(12)

转载需注明出处:http://blog.csdn.net/minimicall,http://cloudtrade.top/ 前面一节我们说到了远端事件。其中,市场数据就属于远端事件。市场数据有什么?我们通过代码来回答这个问题: package org.cryptocoinpartners.…

滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star

整理 | Jane出品 | AI科技大本营(ID;rgznai100)2018 年,科技企业纷纷布局开源战略后迎来的第一个“丰收年”。但对滴滴来说,2019 年才迎来其第一波开源小高潮。自2017年滴滴零星开源数个项目后,滴滴开源项目…

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头2

之前的博文中介绍了IMAGE_FILE_HEADER结构,现在来讨论比较复杂的“可选文件头”结构体。(转载请指明来自breaksoftware的csdn博客)先看下其声明 typedef struct _IMAGE_OPTIONAL_HEADER {//// Standard fields.//WORD Magic;...DWORD BaseOfData; // not e…

9月第1周安全回顾 IM安全威胁严重 企业增加无线安全投入

本文同时发表在:[url]http://netsecurity.51cto.com/art/200709/55180.htm[/url]本周(0827至0902)安全方面值得关注的新闻集中在安全产品、即时通信安全、无线安全和安全市场。安全产品:Intel vPro技术逐渐升温,关注指…

centos下LAMP之源码编译安装httpd

1 最好先安装组件[rootlocalhost ~]# yum groupinstall additional development [rootlocalhost ~]# yum groupinstall development tool2 安装ap1.5.2r(Apache Portable Runtime),安装apr-util 1.5.4工具[rootlocalhost ~]wget http://mirrors.cnnic.cn/apache//apr/apr-1.5.2…

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3

《PE2》中介绍了一些可选文件头中重要的属性,为了全面起见,本文将会讲解那些不是那么重要的属性。虽然不重要,但是还是可以发现很多好玩的情况。首先看一下32位的可选文件头详细定义。(转载请指明来源于breaksoftware的CSDN博客&a…

高效决策的三个关键

“领导者的责任,归纳起来,主要是出主意、用干部两件事。”***的这句话高度概括了领导者的关键任务,而这两件事都有一个共同的核心——决策。决策是管理者的天职,与其说这是他们的权力,不如说是一种责任。每一个经理人&…

开发者都想收藏的深度学习脑图,我们抢先曝光了!

可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升。比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙。而对移动平台来说&#…

Cookie 位置_无需整理

为什么80%的码农都做不了架构师?>>> Cookie 位置 C:\Users\admin\AppData\Roaming\Microsoft\Windows\Cookies 转载于:https://my.oschina.net/Majw/blog/464018

PE文件和COFF文件格式分析——节信息

在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3》中,我们看到一些区块的信息都有偏移指向。而我们本文讨论的节信息是没有任何偏移指向的,所以它是紧跟在可选文件头后面的。(转载请注明来源于breaksoftware的csdn博客&#…

强悍!使用Flash和Silverlight制作控件

Silverlight已经发布了正式版本,我也到网站下载了一个并看看,突然发现了他的例子中包含了这个公司。NETiKA TECH。之所以说他强,是因为他尽然使用Flash和Silverlight制作了仿造WinForm的控件,包括:常见的控件&#xff…

《评人工智能如何走向新阶段》后记(再续8)

由AI科技大本营下载自视觉中国2019.12.13 81.近来一波人工智能热潮是在大数据的海量样本及超强计算能力两者支撑下形成的。所以说这一波人工智能是由大数据喂养出来的。这时的机器智能在感知智能和计算智能等一些具体问题上已经达到甚至超越人类水平,目前在语音识别…

Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详介AvatarNode

2019独角兽企业重金招聘Python工程师标准>>> 正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。 1. Secondary NameNode 原理&#…

PE文件和COFF文件格式分析——RVA和RA相互计算

之前几节一直是理论性质的东西非常多。本文将会讲到利用之前的知识得出一个一个非常有用的一个应用。(转载请指明来源于breaksoftware的csdn博客) 首先我们说下磁盘上A.exe文件和正在内存中运行的A.xe之间的关系。当我们双击A.exe后,A.exe会运…

《评人工智能如何走向新阶段》后记(再续9)

由AI科技大本营下载自视觉中国2019.12.16 96. 近日《Nature》杂志推荐2019年度10大科学进展的杰出论文,其中一篇是有关人工智能的,谈采用深度学习/强化学习算法来训练四足机器狗ANYmal,使它能快速爬起来。该文谈到,在反复训练下&…

RTX组织架构刷新出现了问题

今天发现RTX的组织架构刷新出现了问题。按照网络上的方法什么的把什么配置文件的IP地址改啊改啊。还是没有用。也TELNET了8010端口,也没有用。其实这样的方法之前把服务程序装在另一台机器上倒是可以的。有点麻烦的了。呵呵不知道各位博友有没有解决的好方法啊。呵呵…

一个最简单的通过WireShark破解SSL加密网络数据包的方法

原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的。但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策。在过…

PE文件和COFF文件格式分析——导出表

在之前的《PE可选文件头》相关博文中我们介绍了可选文件头中很多重要的属性,而其中一个非常重要的属性是(转载请指明来源于breaksoftware的CSDN博客) IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; 该数组保存了…

将Quartz.NET集成到 Castle中

Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务.具体可参看TerryLee的Castle 开发系列文章。 …

《评人工智能如何走向新阶段》后记(再续10)

本文由AI科技大本营下载自视觉中国106.百度自研的飞桨(Paddle paddle)框架是中国自研的首个开源产业极人工智能深度学习框架,目前飞桨已累计服务150多万开发者,在定制化训练平台上企业用户超过6.5万,发布了16.9万模型&…

水管工游戏 (深搜)

水管工游戏 本题依然是采用搜索&#xff0c;深搜&#xff0c;广搜都可以&#xff0c;本代码采用深搜&#xff0c;此题在搜索时需要增加一些判断条件以及下一步要搜索的位置即可。 代码如下&#xff1a; #include<stdio.h> int a[51][51]; int book[51][51],n,m,flag0,top…

PE文件和COFF文件格式分析——导出表的应用——一种插件模型

可能在很多人想想中&#xff0c;只有DLL才有导出表&#xff0c;而Exe不应该有导出表。而在《PE文件和COFF文件格式分析——导出表》中&#xff0c;我却避开了这个话题。我就是想在本文中讨论下载Exe中存在导出表的场景。&#xff08;转载请指明出于breaksoftware的csdn博客&…

IBatis.Net学习笔记九--动态选择Dao的设计分析

在IBatis.Net中可以通过配置文件动态选择数据库、动态选择Dao对象。Dao对象也就是操作数据库的类&#xff0c;通过配置文件我们可以选择DataMapper的方式、Ado的方式、NHibernet的方式以前其他第三方的方式来操作数据库。有利于系统的灵活性和可扩展性。通过分析动态选择Dao的设…

Pytorch和Tensorflow,谁会笑到最后?

作者 | 土豆变成泥来源 | 知秋路&#xff08;ID:gh_4a538bd95663&#xff09;【导读】作为谷歌tensorflow某项目的Contributor&#xff0c;已经迅速弃坑转向Pytorch。目前Tensorflow还没有被Pytorch比下去&#xff0c;但之后极大概率被比下去。01 在学术界Pytorch已经超越Tenso…

HTTP请求的过程

HTTP通信机制是在一次完整的HTTP通信过程中&#xff0c;Web浏览器与Web服务器之间将完成下列7个步骤&#xff1a; 1. 建立TCP连接在HTTP工作开始之前&#xff0c;Web浏览器首先要通过网络与Web服务器建立连接&#xff0c;该连接是通过TCP来完成的&#xff0c;该协议与IP协议共同…

JSTL+EL表达式方法获取Oracle的Clob字段内容

我们在页面获得数据的时候一般的类型还是很好获得的,但是一遇到Clob类型就比较麻烦,最常用的方法是用一个流将其读取出来.使用MVC框架的时候这些都是无所谓的事情,因为反正是写在java类中怎么写都行,可是不使用MVC框架,使用jsp页面JSTL的sql标签去读取数据库的数据这种方式就麻…