使用Python包pandasql执行SOL

 

你会使用Python的SQL来重组Pandas数据吗?...


我  相  信  这  么  优秀  的  你 
 已  经  置 顶  了  我


翻译|刘筱天 选文|小象

转载请联系后台



你会使用Python的SQL来重组Pandas数据吗?这篇文章作为pandasql的介绍,并详细说明了如何让它在Rodeo里面运行。

这个帖子最初出现在Yhat博客上。Yhat是一家位于布鲁克林的公司,其目标是使数据科学适用于开发人员,数据科学家和企业。Yhat提供了一个软件平台,用于部署和管理预测算法作为REST API,同时消除与生产环境(如测试,版本控制,扩展和安全性)相关的棘手的工程障碍。
◇◆◇◆◇
介绍


我喜欢Python的原因之一是,用户可以从观察R社区再模仿它最有用的部分中获益。我是一个很大的信徒,一种语言只是作为其图书馆和工具有用。

这篇文章是关于pandasql的,是我们(Yhat)写的一个Python包,是模仿的R包sqldf。它是一个小而强大的库,只包含358行代码。pandasql的想法是让Python执行SQL。对于那些来自SQL第一背景或仍然“在SQL中思考”,pandasql是一种利用两种语言的优势的很好的工具。

在这篇介绍中,我们将向您展示如何使用Pandasql在Rodeo中构建一个集成开发环境(IDE),用于数据探索和分析。 Rodeo是一个开源和完全免费的工具。如果你是R用户,它类似于工具RStudio。到今天为止,Rodeo只能运行Python代码,但上周我们为编辑器添加了一些其他语言的语法标注(markdown,JSON,julia,SQL,markdown)。正如你可能已经阅读或猜测到,我们对于Rodeo已经制定了很详细的计划,包括添加SQL支持,以便你可以在Rodeo里面运行你的SQL查询语句,即使没有添加我们轻巧便捷的pandasql包。更多介绍讲在下一两周后揭晓。
◇◆◇◆◇
下载Rodeo


首先从Yhat网站上的Rodeo页面下载Rodeo for Mac,Windows或Linux。

ps如果你下载Rodeo中遇到问题或仅仅只是有问题,我们将会密切关注我们的话语论坛24/7(好吧,差不多了)。

ps:一些背景知识

在后台,pandasql使用pandas.io.sql模块在DataFrame和SQLite数据库之间传输数据。操作在SQL中执行,结果返回后,数据库被删除。库大量使用了pandas write_frame和frame_query,这两个函数允许你读写pandas和(大多数)任何SQL数据库。
◇◆◇◆◇
安装pandasql




使用RODO中的包管理器窗格安装pandasql。只需搜索pandasql,然后单击安装软件包。
然后你就可以运行了!如果你喜欢的话也可以在文本编辑器中输入 install pandasql。
◇◆◇◆◇
检查数据集


pandasql有两个内置的数据集,我们将用于下面的例子。

肉:来自美国农业部的数据集,包含关于家畜,乳制品和家禽前景和生产的指标

出生:联合国统计司的数据集,载有按月分列的活产婴儿的人口统计数据

运行以下代码以检测出数据集:

在Rodeo里面,你甚至不需要print.variable.head()语句,因为你可以直接检测数据框。
◇◆◇◆◇
额外图
注意,该图既出现在控制台中,也出现在绘图选项卡(右下方的选项卡)中。

提示:您可以通过单击窗格顶部的箭头“弹出”您的制图。如果你在多个显示器上工作,并希望将一个显示器专用于你的数据可视化,这会方便许多。
◇◆◇◆◇
用法
为了使这篇文章简洁易读,我们只是给出了代码片段和下面大多数查询的几行结果。

如果你在Rodeo中跟随操作,你会看到一些提示:

运行脚本将确实运行您在文本编辑器中编写的所有内容

您可以标注代码块并通过单击运行行或按Command + Enter运行它

您可以调整窗格的大小(当我不用制图时,我可以最小化在右下窗格中)

基本

编写一些SQL语句,通过用DataFrames替换表来对你的pandas DataFrame执行它。

pandasql创建一个数据库,框架和所有,加载您的数据,并运行您的SQL。

聚合

pandasql支持聚合。 您可以在group by子句中使用别名列名或列号。

locals()vs. globals()

pandasql需要访问会话/环境中的其他变量。 你可以在执行SQL语句时将locals()传递给pandasql,但是如果你运行了很多可能会给查询带来麻烦。 为了避免所有时间都传递局部变量,你可以将这个帮助函数添加到你的脚本中来设置全局变量():

加入

可以使用标准SQL语法连接数据框。

WHERE条件

这里有一个WHERE子句。

它只是SQL

由于pandasql由SQLite3提供支持,因此您可以执行大多数SQL操作。下面是使用常见SQL功能的一些示例,如子查询,order by,函数和联合。
◇◆◇◆◇
最后的想法
pandas是一个令人难以置信的数据分析工具,在很大程度上,我们认为,因为它是极易理解,简洁和富有表现力。最后,有很多理由来了解合并,联结,连接,熔化和其他本机pandas特征的细微差别,用于划分和切割数据。查看文档的一些示例。

我们希望对于学习Python和pandas的新用户来说,pandasql将会是一个有用的学习工具。就我个人学习R的经验,sqldf是一个熟悉的界面,帮助我使用一个新的工具来尽可能地提高效率。
译者介绍




刘筱天

南财数量经济学在读研究僧一枚,like数据挖掘,希望在不断实践中使英语水平up up up。


    关注 小象


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册