熊猫qcut错误:容器标签必须比容器边缘的数量少一个

时间:2020-07-22 09:39:52

标签: python pandas

我试图在单列上使用qcut。这是专栏:

data['Frequency'].head()

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

但是,当我尝试这样做时:

data['Frequency_Score'] = pd.qcut(data['Frequency'],5,labels=[1,2,3,4,5],duplicates='drop')`

我得到了错误:

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

我尝试了是否使用duplicates='drop'参数。两者都给出错误。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

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

由于您明确声明了5个标签并最终出现4个垃圾箱,因此您会收到该错误。

不要明确指定标签:

>>> 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]]
>>>