解决:Input array must be 1 dimensional


今天做等频离散化实验时出现错误吗,代码如下:

col20 =df.loc[:,['col20']]  #提取特征col20的数据
col20
col20_ = pd.qcut(col20,5)  #对其进行等频离散化
col20_

 报错信息:

Input array must be 1 dimensional

 解决方法:

报错含义是数组必须是一维的,我们发现提取出的col20数据是一个二维的

 

 

 这时我们就需要将数据维度转换至一维,使用flatten()函数即可完成

修改之后的代码

col20 =df.loc[:,['col20']]
col20 = col20.values.flatten()
print(col20.ndim)
col20_ = pd.qcut(col20,5)
col20_

 运行结果就成功了

还有一种办法就是使用for循环,代码如下

col20 =df.loc[:,['col20']]
col20
for i in col20.columns:
    x = pd.qcut(col20[i],5)
    print(x)

这种方法也是可行的,以上就是解决的方法。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM