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