【发布时间】:2013-09-20 16:29:10
【问题描述】:
我有一系列 633 个值,其中约 50% 为 0。理想情况下,我想使用 qcut() 对我的值(用于等值线映射目的)进行分类,但由于非独特的 bin 边缘。
分离数据、对非零值进行分位数、然后将它们重新组合成单个列以使零值的值为 0,而分位数的值为 categorical.label + 1 的最佳方法是什么?
【问题讨论】:
我有一系列 633 个值,其中约 50% 为 0。理想情况下,我想使用 qcut() 对我的值(用于等值线映射目的)进行分类,但由于非独特的 bin 边缘。
分离数据、对非零值进行分位数、然后将它们重新组合成单个列以使零值的值为 0,而分位数的值为 categorical.label + 1 的最佳方法是什么?
【问题讨论】:
如果您将零值替换为 NaN,cut() 和 qcut() 将按预期运行;这些行的 bin 值(来自Categorical.labels)为-1:
df['density'].replace(to_replace=0, value=np.nan, inplace=True)
【讨论】: