我正在尝试将一系列分成几乎相同大小的 桶,保持订单并且不同桶中没有相同的物品。
我正在使用这样的qcut:
>>> import pandas as pd
>>> pd.__version__
'0.20.3'
>>> x = [1,1,1,1,1,2,2,2,2,3,4]
>>> pd.qcut(x, 10, duplicates='drop').value_counts()
(0.999, 2.0] 9
(2.0, 3.0] 1
(3.0, 4.0] 1
dtype: int64
我原本希望将第一个分拆为(0.999, 1.0]
,(1.0, 2.0]
为什么不?我应该尝试其他任何方法吗?
答案 0 :(得分:0)
使用cut
特定的自己的间隔
pd.cut(x, [0.999,1,2]).value_counts()
Out[242]:
(0.999, 1.0] 5
(1.0, 2.0] 4
dtype: int64
答案 1 :(得分:0)
尝试pd.cut选项,如下所示:
pd.cut(x, 3).value_counts()
(0.997, 2.0] 9
(2.0, 3.0] 1
(3.0, 4.0] 1
玩你提供的垃圾箱数量。这里我提供了3个垃圾箱。所以它分为(0.997,2),(2,3),(3,4)。
如果您希望由您指定bin值,请手动提及bin值,如下所示:
bins = [0.999, 1.0, 2.0, 3.0, 4.0]
pd.cut(x, bins).value_counts()
(0.999, 1.0] 5
(1.0, 2.0] 4
(2.0, 3.0] 1
(3.0, 4.0] 1
希望这有帮助。