首页 > 解决方案 > 在 python 中将数据分类到 bin 中的有效方法

问题描述

假设我有一个浮点数据集 (x),它可以假设 0.0 到 1.0 之间的任何值。我想将数据分类到自定义箱中,例如:

    cat= 0 # the output category
    if x > 0.8 and x<=0.9:
        cat = 1
    if x > 0.7 and x<=0.8:
        cat=2
    if x>0.6 and x<=0.7:
        cat = 3

等等......这是最有效的(就我必须写多少行而言)方法吗?我在想是否有某种方法可以让我只指定类别的上限和下限以及类别编号,而不必编写这么多的 if 语句。

标签: python

解决方案


我建议您将数据移动到熊猫数据框中

df['data'] = pd.DataFrame(x)
binInterval = [0, 0.6, 0.7, 0.8, 0.9]
binLabels   = [0, 4, 3, 2, 1]
df['binned'] = pd.cut(df['data'], bins = binInterval, labels=binLabels)

在此处参考文档


推荐阅读