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

使用Pywedge_Charts触发DataFrame.drop() TypeError错误的解决求助

问题:Pywedge_Charts初始化报错TypeError

我尝试使用Pywedge_Charts处理包含3列('State'、'Taxes'、'Revenues_year')的CSV文件,编写了如下代码:

import pandas as pd
import pywedge as pw

tax = pd.read_csv('C:/Users/XXXX/OneDrive/Documents/Python/Taxes.csv')

viz = pw.Pywedge_Charts(tax, c=None, y='State')

运行后出现如下错误信息:

TypeError                                 Traceback (most recent call last)
Cell In[28], line 1
----> 1 viz = pw.Pywedge_Charts(tax, c=None, y='Taxes')

File ~\anaconda3\Lib\site-packages\pywedge\pywedge.py:27, in Pywedge_Charts.__init__(self, train, c, y, manual)
     25 self.c = c
     26 self.y = y
---> 27 self.X = self.train.drop(self.y,1)
     28 self.manual = manual

TypeError: DataFrame.drop() takes from 1 to 2 positional arguments but 3 were given

我是Python新手,这段代码看似基础,已尝试更换y列、更换CSV文件,但问题仍存在,请问该如何修复这个错误?

修复方案

这个错误的核心原因是Pywedge库版本与你安装的Pandas版本不兼容:

  • 新版Pandas(2.0+)已移除DataFrame.drop()方法中用位置参数指定轴的写法(不能直接传1代表axis=1),必须显式用关键字参数axis=1或columns指定要删除的列。
  • 你使用的Pywedge版本内部代码仍在使用旧写法drop(self.y,1),因此触发TypeError。

有两种解决办法,任选其一即可:

方法1:修改Pywedge库源码

找到报错文件路径(错误信息里的~\anaconda3\Lib\site-packages\pywedge\pywedge.py),打开后定位到第27行:

self.X = self.train.drop(self.y,1)

将其修改为以下两种写法之一:

# 写法1:用axis关键字参数
self.X = self.train.drop(self.y, axis=1)
# 写法2:用columns关键字参数(更直观)
self.X = self.train.drop(columns=self.y)

保存文件后重新运行代码即可。

方法2:降级Pandas到兼容版本

若不想修改库源码,可将Pandas降级到2.0之前的版本,比如1.5.3:
打开终端/Anaconda Prompt,执行命令:

pip install pandas==1.5.3

等待安装完成后重新运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 08:22:08