python - 在 Pandas 中使用 pysqldf

标签 python pandas

我正在使用 pandasql 包对 Pandas 进行一些数据操作。我的数据框很大,所以我一直在寻找加快计算速度的方法。一个博客(找到 here)声称 pysqldf 包要快得多。但是,我无法让它与 Pandas 数据框一起使用。

具体来说,这就是我所拥有的:

from pysqldf import SQLDF
sqldf = SQLDF(globals()) #also tried with locals(), doesn't make a difference
#I know the sql is good, I've used it elsewhere (in R)
result = sqldf.execute("Select * from data where blah")

在这里,data是我知道存在的 Pandas 数据框,但我不断收到错误消息:
sqlite3.OperationalError: no such table: data

从我的网络搜索(包括上面的链接)来看,这个包的通常操作是使用已存储在内存中的 sqlite db。但是,文档(找到 here )使它看起来可以直接在数据帧上使用,例如 pandasql 或 R 的 sqldf。

问题:如果pysqldf包真的可以这样使用,我怎样才能让它识别我的数据框?

最佳答案

我对 pysqldf 有同样的问题。也许你应该试试pandasql。我看到了文档,看起来与 pysqldf 非常相似( https://pypi.org/project/pandasql/https://pypi.org/project/pysqldf/ )。试试下面的代码:

import pandas as pd
from pandasql import *

meat = load_meat() 
df = sqldf("SELECT * FROM meat LIMIT 5; ",globals())
print(df)

关于python - 在 Pandas 中使用 pysqldf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49120178/

相关文章:

python - 如何可视化 Pandas Dataframe 中的时间数据?

python - Cumprod 在 Python 中给出 -inf

python - 如何解决 FTP 错误 2 不是目录

python - 来自韧性模块的 "Retry"不适用于生成器

python - 使用 ezdxf 接口(interface)从 Python 导出 Mesh 后无法在 Freecad 中显示 Mesh

python - 数据框中每组的 Pandas 第二最大值

python - 用另一列的值替换字符串的一部分

Python:处理带有 AM/PM 信息的日期/时间

python - 将 dict 的 dict 列表转换为 DataFrame

pandas - 如何将 FastAPI 中的 Pydantic 模型转换为 Pandas DataFrame?