【发布时间】:2021-11-04 17:28:57
【问题描述】:
我有一个数据框,我想根据以下逻辑创建 bin: 分箱的阈值为 5。
-
第一个 bin (bin1) 从第一个标记 m1 开始。然后我们计算下一个标记 m2 的位置差,得到 Position(m2) - Position(m1) = 0.5-0 = 0.5。因为差值
-
我们继续相同的操作,直到与第一个标记的差异大于阈值。因此,由于Position(m6) - Position(m1) = 7,大于阈值,m6不属于bin1,成为bin2的第一个标记。我们重复相同的过程:Position(m7) - Position(m6) = 1.4,即
-
这个例子的预期输出是
bin1 = ['m1','m2','m3','m4','m5'] bin2 = ['m6','m7'] bin3 = ['m8','m9','m10']
关于 binning 的问题很多,答案参考 qcut 和 cut。但我不确定它们是否适用于我的案例,或者我不确定如何将其应用于我的案例。 提前感谢您的宝贵时间。
df = pd.DataFrame({'Marker': ['m1','m2','m3','m4','m5','m6','m7','m8','m9','m10'],
'Position': [0,0.5,0.6,2,5,7,8.4,15,16,17]})
【问题讨论】: