我使用Pandas的Qcut将我的数据离散到大小相等的桶中。我想要一个价格桶。 这是我的数据帧:
productId sell_prix categ popularity
11997 16758760.0 28.75 50 524137.0
11998 16758760.0 28.75 50 166795.0
13154 16782105.0 24.60 50 126890.5
13761 16790082.0 65.00 50 245437.0
13762 16790082.0 65.00 50 245242.0
15355 16792720.0 29.00 50 360219.0
15356 16792720.0 29.00 50 360100.0
15357 16792720.0 29.00 50 360027.0
15358 16792720.0 29.00 50 462850.0
15367 16792728.0 29.00 50 193030.5
这是我的代码:
df['PriceBucket'] = pd.qcut(df['sell_prix'], 3)
我收到以下错误消息:
**ValueError: Bin edges must be unique: array([ 24.6, 29. , 29. , 65. ])**
实际上,我有一个7413行的数据帧。所以这只是真实数据帧的一个采样。奇怪的是,当我对359824行的数据帧使用相同的代码时,实际上使用了相同的数据,它就工作了!数据帧的长度有什么关系吗?
救命啊!非常感谢。
较小数据帧中的“sell-prix”字段没有足够的唯一值,无法分成三个大小相等的存储桶。因此,第一个和第二个bucket的端点是相同的,这就是为什么您会得到一个错误。
考虑
尝试使用
cut
讨论了各种解决方案here,但简要说明:
或者
相关问题 更多 >
编程相关推荐