繁体   English   中英

使用Qcut将大熊猫系列拆分为存储桶

[英]Split pandas series into buckets with qcut

我正在尝试将一系列商品分成几乎相同大小的水桶,以保持顺序,并且在不同的水桶中没有相同的物品。
我正在像这样使用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]
为什么不? 我应该尝试其他方法吗?

通过使用特定于自己的cut间隔

pd.cut(x, [0.999,1,2]).value_counts()
Out[242]: 
(0.999, 1.0]    5
(1.0, 2.0]      4
dtype: int64

尝试如下的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

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM