【问题标题】:Split pandas series into buckets with qcut使用 qcut 将 pandas 系列拆分为存储桶
【发布时间】:2017-10-25 15:37:43
【问题描述】:

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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    通过使用cut 指定您自己的间隔

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

    【讨论】:

    【解决方案2】:

    试试下面的 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
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 2016-09-10
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多