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

升级至Pandas 2.0.3后drop函数报错的问题求助

Pandas 2.0.3升级后drop函数报错的解决办法

报错原因

Pandas 2.0及以上版本对drop()函数的参数做了调整,不再允许通过位置参数传递axis参数(原来的1代表axis=1,即针对列操作),必须显式使用关键字参数指定,否则就会触发"传递了过多位置参数"的报错。

代码修改方案

方案1:显式指定axis=1

把原来的位置参数1改成关键字参数axis=1,两种写法都适用:

# 带inplace的写法
some_race.drop(some_race.columns.difference(
                    ['nr_zwierz', 'rasa', 'blup_zwh', 'h_pd', 'przyrost', 'h_pm', 'proc_mies', 's1', 's2']), 
                    axis=1,
                    inplace=True)

# 不带inplace的写法
some_race = some_race.drop(some_race.columns.difference(
                    ['nr_zwierz', 'rasa', 'blup_zwh', 'h_pd', 'przyrost', 'h_pm', 'proc_mies', 's1', 's2']), 
                    axis=1)

方案2:直接使用columns参数(更直观)

因为是针对列操作,直接用columns参数指定要删除的列集合,不需要额外写axis=1,代码可读性更强:

# 带inplace的写法
some_race.drop(columns=some_race.columns.difference(
                    ['nr_zwierz', 'rasa', 'blup_zwh', 'h_pd', 'przyrost', 'h_pm', 'proc_mies', 's1', 's2']),
                    inplace=True)

# 不带inplace的写法
some_race = some_race.drop(columns=some_race.columns.difference(
                    ['nr_zwierz', 'rasa', 'blup_zwh', 'h_pd', 'przyrost', 'h_pm', 'proc_mies', 's1', 's2']))

回退旧版本的方法

如果不想修改代码,可回退到兼容旧写法的Pandas 1.x系列最新稳定版(比如1.5.3),执行以下命令:

pip install pandas==1.5.3

这个版本完全支持原来的位置参数写法,无需改动代码。

内容的提问来源于stack exchange,提问作者mlodycezar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:05:07