【问题标题】:pandasql is not working in a function python pandaspandasql 在函数中不起作用
【发布时间】:2020-12-24 15:48:54
【问题描述】:

我正在使用 pandasql 对 pandas 数据框进行 sql 连接。它在不将它们放入函数的情况下运行良好。但是在将所有内容放在一个函数中之后,它给了我一个错误说: NameError:未定义全局名称“sqldf”

我使用的代码是这样的:

import pandasql
def myfunction():
    pandasqldf=lambda q:sqldf(q,globals())
    df=pandasqldf("select * from table1 left join table2 on table1.id=table2.id")

我已尝试改用 locals(),但它仍然无法正常工作。 如果您提供有关如何解决此问题的任何意见或建议,我们将不胜感激。谢谢!

【问题讨论】:

  • 您只需将import pandasql 更改为from pandasql import sqldf

标签: python pandas sqldf pandasql


【解决方案1】:

您没有包含正确的导入。 我还发现直接调用 sqldf 而不是通过 lambda 可以更好地工作。 下面的代码似乎对我有用。

from pandasql import sqldf
def select_sql(df_a):
    return sqldf("select * from df_a", locals())

df = pd.DataFrame(np.random.randn(10,10))
select_sql(df)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 2011-12-13
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多