You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中用pandasql执行SQL查询遇TypeError: schema参数重复赋值错误

解决pandasql执行SQL时的TypeError: __init__() got multiple values for argument 'schema'错误

问题场景

之前一直用pandasql编译SQL查询都正常,现在运行以下代码时触发上述错误:

from pandasql import sqldf
import pandas as pd
from sklearn import datasets

Q10="select bucket,count(*) as COUNT,min(probability) as MINSCORE,max(probability) as MAXSCORE,(avg(probability)*100) as PREDDEFRATE,sum(response) as RESPONSE,count(*)-sum(response) as NONRESPONSE from score group by 1;"

Bucket_Details = sqldf(Q10,globals())
display(Bucket_Details)

错误信息:

TypeError: init() got multiple values for argument 'schema'

错误原因

核心原因是pandasql与当前pandas版本不兼容:新版本pandas调整了SQLAlchemy相关的参数传递逻辑,旧版pandasql未适配该变化,导致调用时重复传入schema参数,触发参数冲突错误。

另外注意:原代码中未定义score DataFrame,这也是潜在的运行问题(需确保该数据集已正确加载)。

修复方案

方案1:升级pandasql到最新适配版本

执行以下命令更新pandasql:

pip install --upgrade pandasql

方案2:降级pandas到兼容版本

如果不想升级pandasql,可将pandas降级到与当前pandasql兼容的稳定版本(比如1.5.x系列):

pip install pandas==1.5.3

补充:确保数据集正确定义

原代码缺失score数据集的定义,这里补充模拟代码(可根据实际业务替换):

# 模拟生成符合SQL查询结构的score数据集
data = datasets.make_classification(n_samples=1000, n_features=5, random_state=42)
score = pd.DataFrame({
    'bucket': pd.cut(pd.Series(data[0][:,0]), bins=5, labels=['1','2','3','4','5']),
    'probability': pd.Series(data[0][:,1]),
    'response': pd.Series(data[1])
})

验证代码

将补充后的完整代码运行,即可正常执行SQL查询:

from pandasql import sqldf
import pandas as pd
from sklearn import datasets

# 生成模拟数据集
data = datasets.make_classification(n_samples=1000, n_features=5, random_state=42)
score = pd.DataFrame({
    'bucket': pd.cut(pd.Series(data[0][:,0]), bins=5, labels=['1','2','3','4','5']),
    'probability': pd.Series(data[0][:,1]),
    'response': pd.Series(data[1])
})

Q10="select bucket,count(*) as COUNT,min(probability) as MINSCORE,max(probability) as MAXSCORE,(avg(probability)*100) as PREDDEFRATE,sum(response) as RESPONSE,count(*)-sum(response) as NONRESPONSE from score group by 1;"

Bucket_Details = sqldf(Q10, globals())
display(Bucket_Details)

内容的提问来源于stack exchange,提问作者Sai Nandhan Rayapureddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:20:31