我正在尝试根据列的质量设置新变量'not_good','good'和'very good'。因此,在数据集中的每一行中,我仅在其中之一中具有“ 1”,而在其余两个变量中仅具有两个“ 0”。我使用了上面的代码,
for i in range(1599):
if (data.quality[i] == 3) or (data.quality[i] == 4):
data.not_good = 1
if (data.quality[i] == 5) or (data.quality[i] == 6):
data.good = 1
if (data.quality[i] == 7) or (data.quality[i] == 8):
data.very_good =1
单元运行完美,但我发现所有行添加的所有变量均等于1。
您有一个对象数据。该数据对象具有4个变量:
not_good : int
good : int
very_good : int
quality : int[] # int array
只要其中一个数据不佳,不佳或不佳,您到处都有一个。当您选择的类型不是int而是int []时,可以解决该问题,代码如下所示:
data_length = 1599
data.not_good = [0]*data_length
data.good = [0]*data_length
data.very_good = [0]*data_length
for i in range(data_length):
if (data.quality[i] == 3) or (data.quality[i] == 4):
data.not_good[i] = 1
if (data.quality[i] == 5) or (data.quality[i] == 6):
data.good[i] = 1
if (data.quality[i] == 7) or (data.quality[i] == 8):
data.very_good[i] =1