跳转到主要内容

sqldf for pandas

项目描述

免责声明

本项目未得到维护。它仅是yhat/pandasql的一个分支,所有功劳都归功于该团队。此分支仅解决与SQLAlchemy v2.x.x的兼容性问题。已请求PR将其包含在主pandasql项目中,但它似乎已处于休眠状态。这激发了此分支的创建。

panSQL

panSQL 允许您使用 SQL 语法查询 pandas DataFrame。它与 R 中的 sqldf 类似。panSQL 旨在为 Python 或 pandas 新手提供一种更熟悉的数据操作和清理方式。

安装

$ pip install -U pansql

基础知识

panSQL 中使用的主要函数是 sqldfsqldf 接受 2 个参数

  • 一个 SQL 查询字符串
  • 一组会话/环境变量(locals()globals()

指定 locals()globals() 可能会变得繁琐。您可以定义一个简短的辅助函数来解决这个问题。

from pansql import sqldf
pysqldf = lambda q: sqldf(q, globals())

查询

panSQL 使用 SQLite 语法。任何 pandas DataFrame 都将被 panSQL 自动检测。您可以像查询任何常规 SQL 表一样查询它们。

$ python
>>> from pansql import sqldf, load_meat, load_births
>>> pysqldf = lambda q: sqldf(q, globals())
>>> meat = load_meat()
>>> births = load_births()
>>> print pysqldf("SELECT * FROM meat LIMIT 10;").head()
                  date  beef  veal  pork  lamb_and_mutton broilers other_chicken turkey
0  1944-01-01 00:00:00   751    85  1280               89     None          None   None
1  1944-02-01 00:00:00   713    77  1169               72     None          None   None
2  1944-03-01 00:00:00   741    90  1128               75     None          None   None
3  1944-04-01 00:00:00   650    89   978               66     None          None   None
4  1944-05-01 00:00:00   681   106  1029               78     None          None   None

支持连接和聚合

>>> q = """SELECT
        m.date, m.beef, b.births
     FROM
        meats m
     INNER JOIN
        births b
           ON m.date = b.date;"""
>>> joined = pyqldf(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 pysqldf(q).head()
   year  beef_total
0  1944        8801
1  1945        9936
2  1946        9010
3  1947       10096
4  1948        8766

更多信息和代码示例可在示例文件夹或我们的博客找到。

Analytics

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。

源代码分发

pansql-0.0.1.tar.gz (28.3 kB 查看哈希值)

上传时间 源代码

构建分发

pansql-0.0.1-py3-none-any.whl (26.4 kB 查看哈希值)

上传时间 Python 3

支持者