pandasql在python函数中不起作用

pandasql在python函数中不起作用,python,pandas,sqldf,pandasql,Python,Pandas,Sqldf,Pandasql,我正在使用pandasql在pandas数据框架上进行sql连接。它运行良好,无需将它们放入函数中。但在将所有内容组合到一个函数中后,它给了我一个错误,即: 名称错误:未定义全局名称“sqldf” 我使用的代码如下所示: import pandasql def myfunction(): pandasqldf=lambda q:sqldf(q,globals()) df=pandasqldf("select * from table1 left join table2

我正在使用pandasql在pandas数据框架上进行sql连接。它运行良好,无需将它们放入函数中。但在将所有内容组合到一个函数中后,它给了我一个错误,即: 名称错误:未定义全局名称“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()来代替,但它仍然不起作用。
如能就如何解决此问题提供任何意见或建议,将不胜感激。谢谢

您没有包含正确的导入。 我还发现直接调用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)

您只需要将
导入pandasql
更改为
从pandasql导入sqldf