使用pd.cut分类单个数值报错“Input array must be 1 dimensional”原因排查
问题原因及解决办法
报错原因
pd.cut 要求输入必须是一维数组/序列(比如列表、pandas Series、numpy一维数组),你的两段代码都不符合这个要求:
- 直接传单个浮点数
0.96是标量,不属于一维结构; np.array(0.96)创建的是0维numpy数组(本质还是标量的包装形式),同样不满足一维的要求,因此触发「Input array must be 1 dimensional」错误。
解决方法
把单个值转换成一维结构即可,比如用列表包裹,或者创建一维numpy数组:
import pandas as pd import numpy as np # 方法1:用列表包裹单个值 result1 = pd.cut([0.96], bins=[0,0.5,1,10], labels=['A','B','C']) print(result1) # 输出:['B'],类型为Categorical # 方法2:创建一维numpy数组 result2 = pd.cut(np.array([0.96]), bins=[0,0.95,1,10], labels=['A','B','C']) print(result2) # 输出:['B'],类型为Categorical # 若想直接获取单个标签值,可通过索引取出 print(result1[0]) # 输出:B
内容的提问来源于stack exchange,提问作者User981636
相关产品推荐
相关产品推荐

