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

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


倚天杖
浏览 130回答 2
2回答

蓝山帝景

我建议您将数据移动到 Pandas 数据框中df['data'] = pd.DataFrame(x)binInterval = [0, 0.6, 0.7, 0.8, 0.9]binLabels&nbsp; &nbsp;= [0, 4, 3, 2, 1]df['binned'] = pd.cut(df['data'], bins = binInterval, labels=binLabels)

慕神8447489

简单地: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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python