是否有使用 SQL 在 Python 中操作 Pandas 数据帧的包?

数据挖掘 Python 熊猫 sql 数据框
2021-09-23 23:40:12

我不想学习新的包/语言,而是想利用我现有的 SQL 技能dataframes在 Python 中操作 pandas。有谁知道这样做的方法,或者可能是一个允许我这样做的包?

4个回答

我找到了一个名为pandasql的包,它基于R 的 sqldf它似乎比使用 pandas 包进行转换要慢一些,但它完成了工作。只需将 SQL 查询放入这样的字符串中:

query_string = """
    select * from df
"""

然后使用pandasql.sqldf包中的字符串,如下:

new_dataframe = pandasql.sqldf(query_string, globals())

选择 globals() 或 locals(),具体取决于您希望变量的范围。

正如我提到的,它似乎有点慢,但我找不到其他任何东西。我可能会不时使用它,直到我对 Pandas 变得更好。

肖恩

根据我的经验,您几乎可以在 sql 中使用 pandas 完成所有可以完成的事情。我还没有看到熊猫的最新版本,但我记得 sql 更好,因为使用熊猫你受限于内存大小。如果内存填满,您可能会崩溃,这是使用 sql 命令不会发生的事情。您可以将 pandas 数据框保存在一个文件中,并使用您的 sqlcsv操作该文件。这个链接这里也可以帮助你。此外,对于将文件导入sql,您还没有指定您拥有的 sql,但此链接可能会对您有所帮助。其他 sql 也提供此行为。csvcsv

实际上有一个名为 dataframe_sql 的新包可以满足您的需求。它与 Pandasql 的不同之处在于它直接将 sql 转换为 pandas 方法,从而消除了该包导致的减速。如果您想了解有关安装或其工作原理的信息,可以在此处查看

您可以对 Google BigQuery SQL 使用以下选项:

import pandas as pd
from google.cloud import bigquery

selectQuery = """SELECT * FROM mydataset.mytable"""
bigqueryClient = bigquery.Client()
df = bigqueryClient.query(selectQuery).to_dataframe()
print(df)