python - Pandas qcut错误: Bin labels must be one fewer than the number of bin edges

标签 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'参数。两者都会给出错误。

我该如何解决这个问题?

最佳答案

当您使用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]]
>>>

关于python - Pandas qcut错误: Bin labels must be one fewer than the number of bin edges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63031258/

相关文章:

python - 如何保持多台机器与 South 和 Git 同步

python - Cython:C++ 向量上的 std::sort

python - 应用函数然后过滤 DataFrame

python - 将第二层中具有不等元素的Python嵌套列表转换为数据帧

python - 将事件的时间序列 + 持续时间重新采样为并发事件

python - 如何在 Tkinter 中制作颜色选择比例尺?

python - 可以在网络应用程序中使用 Pika BlockingConnection 吗?

python - 为什么我的素描课画的是 sec,而不是 cosec 或 cot?

pandas - 计算数据框中特定列中的 NaN

python - 在 pandas 中使用日期时间