2021-04-30

字符串转为数字

final_df["xx"] = pd.factorize(final_df["xx"])[0].astype(int)

 

分箱报错

Qcut Pandas : ValueError: Bin edges must be unique

报错:
在使用qcut进行等频分箱时,报错**“Qcut Pandas : ValueError: Bin edges must be unique”

原因:
qcut按照等频方式分箱,且要求分位点处的取值唯一。当有多个元素有相同的分位点处取值时,就会报错

解决:
添加.rank(method=‘first’),相同取值元素的rank不同

pd.qcut(df['a'], 10)         ## 修改前
pd.qcut(df['a'].rank(method='first'), 10)   ## 修改后
 

等宽分箱

pd.qcut()参数介绍
先看一下官方文档给出的函数作用:

基于分位数的离散化功能。 将变量离散化为基于等级或样本分位数的相等大小的存储桶。

再来看一下这个函数都包含有哪些参数,主要参数的含义与作用都是什么?

和pd.cut()相比,pd.qcut()的参数少了两个,少了right和include_lowest两个参数,剩下的参数几乎和pd.cut()一模一样了。

pd.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')

x :一维数组或者Serise

q : 表示分位数的整数或者数组,

如果是分位数的整数,例如10用于十分位,4用于四分位
如果是分位数数组,例如[0,0.25,0.5,0.75,1]用于四分位数
labels : 数组或者布尔值,默认为none,用于指定每个箱体的标签

如果是数组,长度要与分箱个数一致,比如用四分位数分箱,需要指定四个标签
如果为False,则仅返回分箱的整数指示符,即当前数据位于哪个箱子中
rebines :布尔值,可选。 是否显示分箱的分界值。(由于是按照分位数进行分箱,在不知道分位数具体数值的情况下,可以通过这个参数设置显示分界值即分位数的具体数值)

precision:整数,默认3,存储和显示分箱标签的精度。

duplicates:如果分箱临界值不唯一,则引发ValueError或丢弃非唯一

pd.qcut()的参数就是这些了,并不是所有的参数都常用,下边我们通过代码示例来看一下常用参数的应用。
例子

pd.qcut(df_f.积分,4,labels=["低","中","高","很高"])

 

分箱报错

Bin labels must be one fewer than the number of bin edges

看是不是后面的标签给多了或者少了。。。

 

报错

AttributeError: module 'sklearn.metrics' has no attribute 'calinski_harabaz_score'

升级sklearn

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值