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

使用np.where触发TypeError:传入6个参数但仅支持1-3个

解决np.where()的TypeError参数问题

错误原因

你给np.where()传入了6个位置参数,但该函数最多仅接受3个位置参数(条件、满足条件的返回值、不满足条件的返回值),因此触发TypeError。np.where()本身只支持二元判断,无法一次性处理多分类的映射逻辑。

解决方案

结合你代码里的参数推测,你需要实现的是Sentimen值的多分类映射(Positif→1、Negatif→0、Netral→-1),可以用以下两种方法解决:

方法1:嵌套np.where()

通过嵌套实现多分支判断:

label = np.where(df['Sentimen'] == 'Positif', 1, 
                 np.where(df['Sentimen'] == 'Negatif', 0, -1))
y = label
y[45:75]
  • 第一层判断:若Sentimen为Positif,返回1;
  • 第二层判断:若不为Positif,再判断是否为Negatif,返回0;
  • 剩余情况(即Netral)返回-1。

方法2:使用pandas的map()方法(更直观)

创建映射字典直接对列做转换,适合多分类场景:

sentiment_map = {'Positif': 1, 'Negatif': 0, 'Netral': -1}
label = df['Sentimen'].map(sentiment_map)
y = label
y[45:75]

这种方法可读性更高,后续新增类别时只需修改映射字典即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:40:35