大熊猫的sqldf

pandasql的Python项目详细描述


pandasql允许您使用sql语法查询pandas数据帧。 它的工作方式类似于r中的sqldfpandasql试图提供 更熟悉的处理和清理数据的方法 python或pandas

安装

$ pip install -U pandasql

基本知识

pandasql中使用的主要函数是sqldfsqldf接受2 parametrs-一个sql查询字符串-一组会话/环境变量 (locals()globals()

指定locals()globals()可能会很乏味。你可以 定义了一个简短的帮助函数来解决这个问题。

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

查询

pandasql使用SQLite syntax。 任何pandasdataframes都将由 pandasql。您可以像查询任何常规sql表一样查询它们。

$ python
>>> from pandasql 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

更多信息和代码示例可在 examples 文件夹或在our blog上。

Analytics

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

推荐PyPI第三方库


热门话题
java无法更新Maven配置   Java中错误和异常的区别?   java从日期开始获得小时、分钟和秒?   使用jsonpath使用数组索引进行java解析   java如何从改造中读取json响应   Java:封装概念   Scala的java Play Framework:[类型控制器不是包控制器的成员]   java JPA Hibernate使用criteria builder生成的左连接被忽略   使用mvn测试版本号时,java Maven无法解析依赖项   java安卓的vitals和异常处理   java组织。springframework。网状物绑定参数的MissingServletRequestParameterException   java JSON解析在Android应用程序脱机时崩溃   java如何降低SmartMaterialSpinner的高度?   java有一种在使用矩阵时不拉伸位图的方法。位图上的polytoply()?   java arraylist有问题吗   java调用dispose()不会关闭JFrame   java主机环境安全   java是否产生/加入释放监视器锁?   java包含json文件并将其读入生成的maven中。jar文件