首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas qcut错误: Bin标签必须比bin边的数量少一个

Pandas qcut错误: Bin标签必须比bin边的数量少一个
EN

Stack Overflow用户
提问于 2020-07-22 17:39:52
回答 1查看 2K关注 0票数 0

我正尝试在单个列上使用qcut。以下是该列:

代码语言:javascript
运行
复制
data['Frequency'].head()

0     5
1     5
2    89
3     2
4     1
5     1
6    86
7     1
8    64
9     2

然而,当我尝试这样做时:

代码语言:javascript
运行
复制
data['Frequency_Score'] = pd.qcut(data['Frequency'],5,labels=[1,2,3,4,5],duplicates='drop')`

我得到了错误:

代码语言:javascript
运行
复制
ValueError: Bin labels must be one fewer than the number of bin edges

我尝试过使用和不使用duplicates='drop'参数。两者都会给出错误。

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-22 17:44:44

使用duplicates="drop"时,实际生成的存储箱数量可能不再与所需的存储箱边缘计数相同。

由于您显式地声明了5个标签,并最终得到了4个bin,因此您会得到该错误。

不要显式指定标签:

代码语言:javascript
运行
复制
>>> import pandas as pd
>>> df = pd.DataFrame({"Frequency": [ 5,  5, 89,  2,  1,  1, 86,  1, 64,  2, ]})
>>> pd.qcut(df["Frequency"], 5, duplicates="drop")
0      (2.0, 5.0]
1      (2.0, 5.0]
2    (68.4, 89.0]
3    (0.999, 2.0]
4    (0.999, 2.0]
5    (0.999, 2.0]
6    (68.4, 89.0]
7    (0.999, 2.0]
8     (5.0, 68.4]
9    (0.999, 2.0]
Name: Frequency, dtype: category
Categories (4, interval[float64]): [(0.999, 2.0] < (2.0, 5.0] < (5.0, 68.4] < (68.4, 89.0]]
>>>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63031258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档