Binning 以离散化 python 中的数值变量 [duplicate]

Binning to discretize a numeric variable in python [duplicate]

提问人:Dag2 提问时间:8/19/2023 更新时间:8/19/2023 访问量:38

问:

我想将数据框的数值变量装箱,使其成为分类变量。我的变量中的值范围为 1-16,您可以在此处看到它的输出值计数。

2     23660
4     11051
1      6911
6      4350
3      3876
5      2596
8      1198
7       781
10      291
9       241
12      107
16       51
11       50
14       38
13       25
15       13

我想将每个大于 8 的值都装箱到字符串值“8+”中。

我尝试了以下代码:

df['var1_binned'] = pd.cut(df['var1'], bins=[0,1,2,3,4,5,6,7,8], labels=['1','2','3','4','5','6','7','8+'])
print(df['var1_binned'].value_counts())

但我只收到了以下输出:

2     23660
4     11051
1      6911
6      4350
3      3876
5      2596
8+     1198
7       781
Name: var1_binned, dtype: int64

不知何故,它只用 1-8 的值标记每一行,但完全排除了 8 以上的所有内容。 有人可以帮忙吗?

Python 分箱

评论

1赞 Karl Knechtel 8/19/2023
除了链接的副本外,还请阅读文档并仔细考虑逻辑。是使用精确值还是区间?当您编写现有尝试时,为什么需要包含在 ?如果在列表中仅指定单个值,会发生什么情况?cut0binsbins

答: 暂无答案