【问题标题】:How to cut Pandas Series with non-unique bin edges?如何切割具有非唯一 bin 边缘的 Pandas 系列?
【发布时间】:2017-03-07 08:48:27
【问题描述】:

我有一系列大约 200000 个值,其中 >50% 是 NaN 和 0。理想情况下,我想使用 qcut() 对我的值进行分箱,但由于分箱边缘不唯一,这给了我一个错误.我将如何对分位数 1 中的所有 NaN 值和分位数 2 中的 0 值进行分类,然后对分位数标签 3 到 10 中的其余非零值进行分类(假设我想要 10 个分位数)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以为 qcut 提供一个指定分布的数组(docs 中的示例是 [0, .25, .5, .75, 1.] 用于分位数。因此,首先用 -1 填充 NaN 到确保它们出现。然后指定具有此分布的存储桶数组:

    [0,
    count(-1)/df.shape[0],
    (count(-1)+count(0))/df.shape[0],
    (count(-1)+count(0))/df.shape[0] + 1.*(df.shape[0] - count(-1)+count(0))/7,
    (count(-1)+count(0))/df.shape[0] + 2.*(df.shape[0] - count(-1)+count(0))/7,
    #...
    1]
    

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      相关资源
      最近更新 更多