在python中将数据分类到bin中的有效方法

时间:2018-09-26 23:18:51

标签: python

假设我有一个浮点数据集(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语句。

2 个答案:

答案 0 :(得分:0)

我建议您将数据移入熊猫数据框

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)

请参考文档here

答案 1 :(得分:0)

简单地:

categories = [0.6, 0.7, 0.8, 0.9]
cat = [categories[i]<x and categories[i+1]>=x for i in range(0, len(categories)-1)].index(True) + 1