熊猫的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楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null