让Python运行SQL?Pandasql来搞定!

Python编程学习圈 昨天

关于 Python 的最喜欢的一件事是使用者获得观察 R 社区的好处,然后模拟其最好的部分。我相信一种语言和它的库和工具一样有用。

这篇文章是关于pandasql,Yhat 写的一个模拟 R 包 sqldf 的Python 库。这是一个小而强大的库,只有358行代码。pandasql 的想法是让 Python 运行 SQL。对于那些来自 SQL 背景或仍然「使用 SQL 思考」的人来说,pandasql是一种利用两种语言优势的好方式。

在本介绍中,将在为数据探索和分析构建的集成开发环境(IDE) Rodeo 中用 pandasql 开始运行。Rodeo 是一个开源、完全免费的工具。如果你是 R 使用者,那么它与 RStudio 具有类似感觉的工具。到目前为止,Rodeo 只能运行 Python 代码,但上周我们添加一些其他语言的语法高亮到编辑器(markdown,JSON,julia,SQL,markdown)。

你可能已经阅读或猜到了,我们对 Rodeo 有很大的计划,包括添加 SQL 支持,以便你可以在 Rodeo 内运行 SQL 查询,即使没有我们的方便pandasql。

01. 下载 Rodeo

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

如果你好奇,一点背景

在背后,pandasql 使用该 pandas.io.sql 模块在DataFrame 和 SQLite 数据库之间传输数据。操作用 SQL 执行,返回结果,然后将数据库拆除。此库大量使用 pandas write_frame 和 frame_query 两个功能,可以让你读取和写入 pandas 任何 SQL 数据库。

02. 安装 pandasql

pandasql 使用 Rodeo 中的软件包管理器进行安装。只需搜索 pandasql 并单击安装包。

如果你喜欢安装这种方式,也可以从文本编辑器运行 ! pip install pandasql。

03. 查看数据集

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

meat:数据集来自美国农业部,包含有关牲畜,乳制品和家禽前景和生产的指标
births:数据集来自联合国统计司,包含按月计算的活产婴儿人口统计

运行以下代码查看数据集。

在 Rodeo 里面,你真的不需要 print.variable.head() 语句,因为实际上你可以直接检查 dataframe。

04. 奇数图

请注意,绘图将显示在控制台和绘图选项卡(右下角的选项卡)中。

提示:可以通过单击窗格顶部的箭头「弹出」你的绘图。如果你正在使用多个显示器,并希望对于数据可视化,专注于其中一个屏幕,那么这是非常方便的。

05. 用法

为了使这篇文章简洁易读,我们刚刚给出了代码片段和下面大部分查询的几行结果。

如果你在 Rodeo 中跟随着,开始时候有会一些提示:

  • Run Script 确实会运行在文本编辑器中编写的所有内容

  • 你可以高亮显示代码块,并通过单击 Run Line 或按 Command + Enter 运行它

  • 你可以调整窗格大小(当我没有绘制图时,我缩小了右下角的窗格)

06. 基础

写一些 SQL,通过代替 DataFrames 表针对 pandas DataFrame,并执行它。

pandasql 创建数据库、架构、加载数据、并运行你的 SQL。

07. 聚合

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

locals() 与 globals()

pandasql 需要在会话/环境中访问其他变量。虽然当执行 SQL 语句时,可以传递 locals() 给 pandasql,但是如果你运行了大量可能麻烦的查询。为了避免一直传递给 locals,你可以将这个帮助函数添加到脚本中,其设置 globals() 如下:

08. 联结

你可以使用正常的 SQL 语法联结 dataframes。

09. WHERE 条件

这是一个 WHERE 字句。

10. 这只是SQL

由于 pandasql 由 SQLite3 提供支持,你可以用 SQL 中执行大部分任务。以下是使用常见 SQL 功能(例如子查询,排序分组,函数和联合)的一些示例。

最后的想法

pandas 是一个难以置信的数据分析工具,因为它非常易于理解、简洁明了、易表达。最终,有足够充分的理由来学习的 merge,join,concatenate,melt 的细微差别和其他 pandas 特色的切片和切块数据。查看文档的一些例子。

我们希望这 pandasql 对于 Python 和 pandas 新手将是一个有用的学习工具。在我自己学习 R 的个人经验中,sqldf 是一个熟悉的界面,可以帮助我尽快使用新工具来提高生产力。

原文链接:http://blog.yhat.com/posts/pandasql-intro.html

(0)

相关推荐

  • Python 导入 8 种数据文件的方法

    数据分析过程中,需要对获取到的数据进行分析,往往第一步就是导入数据.导入数据有很多方式,不同的数据文件需要用到不同的导入方式,相同的文件也会有几种不同的导入方式.下面总结几种常用的文件导入方法. 大多 ...

  • (2条消息) 数据可视化技术:python数据可视化工具库汇总(共21个)

    Python数据可视化库 在数据分析中最好展示数据的方式就是形象地绘制对应的图像,让人能够更好地理解数据.什么样的数据.什么样的场景用什么样的图表都是有一定的规定的.(这个以后写一篇博客来记录一下.当 ...

  • 2021年数据科学学习路线图

    建立自己的学习轨道,以掌握应用数据科学的艺术 > High-level Data Science Roadmap 尽管除了日期以外,其他一切都没有真正改变,但新的一年充满了所有人的希望,重新开始 ...

  • 用Python执行SQL、Excel常见任务?10个方法全搞定!

    数据从业者有许多工具可用于分割数据.有些人使用 Excel,有些人使用SQL,有些人使用Python.对于某些任务,使用 Python 的优点是显而易见的.以更快的速度处理更大的数据集.使用基于 Py ...

  • 不懂数据库?不懂SQL?不懂python?照样搞定数据分析

    大数据的热度不减,企业的数据化转型也迫在眉睫.然后,就在这样的趋势下,越来越多的企业和业务人员却意识到一个棘手的问题:企业庞大的数据资源与业务人员的数据分析能力之间存在巨大的断层. 首先,让我们定义一 ...

  • 老板让我从几百个Excel中查找数据,我用Python一分钟搞定!

    今天分享一个真实的办公自动化需求,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大! 一.需求说明 首先我们来看下今天的需求,有一份档案记录总表的Excel工作簿, 每天会根据当天 ...

  • 再见PDF提取收费!我用100行Python代码搞定!

    第471篇原创干货,第一时间送达 大家在日常的工作和学习过程中,都少不了与PDF文件打交道,很多的小伙伴都面临着将PDF文件中的文字.图片和表格数据提取出来的问题.能够对PDF文件中的文字.表格等数据 ...

  • 手把手教你使用Python轻松搞定发邮件

    来源:Python爬虫与数据挖掘 前言 现在生活节奏加快,人们之间交流方式也有了天差地别,为了更加便捷的交流沟通,电子邮件产生了,众所周知,电子邮件其实就是客户端和服务器端发送接受数据一样,他有一个发 ...

  • 用Python这个小工具,一次性搞定论文作图与数据处理!

    好奇心Log 今天 被论文折磨是每个科研人的日常,只要随便一搜,全都是科研人被论文虐得死去活来的心路历程. 在博士路上狂奔了四年的小辰,同样也被论文搞得焦头烂额. 他的论文前前后后修改了6次,可导师仍 ...

  • 弃繁就简!一行代码搞定 Python 日志!

    来源:Python 技术「ID: pythonall」 写了这么多年的 Python ,我一直都是使用 Python 自带的 logging 模块来记录日志,每次需要写一些配置将日志输出到不同的位置, ...

  • 5行代码搞定14种常见图的python可视化库,还自带16种优美主题,真是太喜欢了

    来自:python分析数据之禅 有时候我们做数据可视化并不需要特别复杂的功能,仅仅是想把简单的数据用图形展示出来 今天就给大家介绍一种非常适合新手的python可视化库--pygal pygal比较小 ...

  • 神操作!一行Python代码搞定一款游戏?厉害了程序员!

    Python大本营 昨天 一行代码能干啥? 这一款的迷宫游戏厉害了 迷宫游戏,不知道大家有没有玩过,以前非常风靡,各种大小的迷宫设计,尤其是Web版的迷宫早些年的时候非常流行,但是Python一行代码 ...