热线电话:13121318867

登录
2020-05-31 阅读量: 3347
用pandas库里面调用cut函数对数值变量进行分箱,ValueError: Bin labels must be one fewer than the number of bin edges

导入库

import pandas as pd

准备数据框

a=pd.DataFrame({"x":[0.12,0.2,0.5,0.6],"y":[0.2,0.3,0.3,0.5]})

生成变量分箱字典

dic1={"x":[0,0.1,0.3,1],"y":[0,0.2,0.5,1]}

将分箱后的变量存为原来的名字上加上后缀1

a["x1"]=pd.cut(a.x,dic1["x"],labels=[1,2,3] )

上面的代码也可以写成下面这样

a["x1"]=pd.cut(a["x"],dic1["x"],labels=[1,2,3] )

#需要注意的是0,0.1,0.3,1是四个数(四个边缘),能表示3个区间,所以label只能是3个。

#如果label给定5个的话就会出现如下错误提示

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

翻译成中文:箱子标签必须比箱子边缘的数量少一个,需要注意的是这里的fewer是少的意思

计算后的正确结果如下:

0.4081
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子