运行Django项目时遭遇DataFrame.drop()参数错误求解决
解决DataFrame.drop()参数错误:takes from 1 to 2 positional arguments but 3 were given
错误原因
你的报错出现在calPred函数的这一行:
x = np.array(df.drop(['Prediction'], 1))
这是因为新版pandas(2.0+)不再允许通过位置参数传递axis参数。旧版写法df.drop(cols, 1)中,1是axis=1的位置传参,但现在该参数必须通过关键字指定,否则会被识别为多余的位置参数,触发参数数量错误。
解决方案
把代码修改为以下两种方式之一即可:
- 显式指定
axis关键字参数:
x = np.array(df.drop(['Prediction'], axis=1))
- 更直观的写法:直接用
columns参数指定要删除的列(推荐):
x = np.array(df.drop(columns=['Prediction']))
验证说明
修改后,drop函数会正确识别你要删除名为Prediction的列,而非将1误判为额外的标签参数,即可解决该类型错误。
内容的提问来源于stack exchange,提问作者Neil Ngetich
相关产品推荐
相关产品推荐

