熊猫的sqldf

pandasql3的Python项目详细描述


潘达什

这是原始pandasql的一个分支,支持多个SQL 后端和更方便的接口。更多信息见下文。在

pandasql允许您使用SQL语法查询pandas数据帧。 它的工作方式类似于R中的sqldfpandasql试图提供一个 为新用户提供更熟悉的操作和清理数据的方法 Python或pandas。在

安装

$ pip install -U pandasql

基础知识

除了原来的pandasql的sqldf函数之外,这个fork还有 一个类PandaSQL,鼓励新用户使用。在

sqldf函数

原始pandasql中使用的主要函数是sqldfsqldf 接受一个三个参数:-sql查询字符串、-dict of environment 变量(可选,如果未指定,假设为 {**locals(),**globals()})-数据库URI的格式与中的相同 SQLAlchemy(可选,默认情况下使用内存中的SQLite数据库)

PandaSQLclass

当您需要执行多个查询时,该类更加方便 (几乎总是):-首先创建类,如果不是,则指定db\u uri 默认值:pdsql = PandaSQL(db_uri)-要执行查询,只需调用 pdsql(query)(也可以明确指定环境)

查询

任何pandas数据帧都将由^{tt1}自动检测$ 您可以像查询任何常规SQL表一样查询它们。在

^{pr2}$

也支持联接和聚合

>>> q = """SELECT
        m.date, m.beef, b.births
     FROM
        meats m
     INNER JOIN
        births b
           ON m.date = b.date;"""
>>> joined = pdsql(q)
>>> print joined.head()
                    date    beef  births
403  2012-07-01 00:00:00  2200.8  368450
404  2012-08-01 00:00:00  2367.5  359554
405  2012-09-01 00:00:00  2016.0  361922
406  2012-10-01 00:00:00  2343.7  347625
407  2012-11-01 00:00:00  2206.6  320195

>>> q = "select
           strftime('%Y', date) as year
           , SUM(beef) as beef_total
           FROM
              meat
           GROUP BY
              year;"
>>> print pdsql(q).head()
   year  beef_total
0  1944        8801
1  1945        9936
2  1946        9010
3  1947       10096
4  1948        8766

更多信息和代码示例 版本)可在 examples 文件夹或his blog。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么数据库最类似于Map,每个用户/id存储无限多个“键”和“值”?   java仅使用super pom进行测试   内存不足如何解析java。OutOfMemoryError:Java堆空间在增加堆大小的情况下将意味着延迟OutOfMemoryError   来自另一个类的mysql和java jdbc调用[运行时应用程序]   java通过下拉菜单更改搜索框搜索的内容   JAVAlang.ClassNotFoundException:sun。jdbc。odbc。JdbcOdbcDriver   java Selenium点击链接   JavaSpringHibernate:从唯一值列表中获取对象列表   java Bing广告与桌面身份验证问题   java如何在没有任何外部SDK的情况下从安卓打印到收据打印机?   未调用java菜单片段类   java在IDEA和PyCharm中同时为同一个项目工作   java我们如何为同一个异常提供不同的海关信息   jakarta ee中是否预定义了“请求”和“响应”变量或值?   java更好地解决“之前和之后”难题?   尝试将数据从Excel添加到Java   发送电子邮件的Java代码只适用于一个电子邮件id?   java如何从资产解析XML?