我有4个数据集,分别是cluster\u 1、cluster\u 2、cluster\u 3和cluster\u 4。我想循环所有4个变量,将变量的值改为二进制,所以如果它们大于或等于1,那么就设置为1,如果为0,则设置为0。所有数据集都有相同的变量名。你知道吗
我不断得到错误'浮'对象是不iterable运行代码时。 binary是变量名的列表,clusti是数据集的列表。你知道吗
for i in binary:
print(dataset[i])
dataset[i] = dataset[i].apply(lambda x: [y if y== 0 else 1 for y in x]) ```
试着用理解力来做这件事。你知道吗
根据上面的代码,
dataset
的结构有两种不同的情况:它是一个列表列表,例如:
数据集=[ [0,1,2,3], [1,2,3,4], [0,0,2,1], [1,0,1,0] ]
这是一个关键的清单,例如:
数据集={ '簇1':[0,1,2,3], '簇2':[1,2,3,4], '簇3':[0,0,2,1], '簇4':[1,0,1,0] }
案例1:如果您的数据集是一个列表列表,您可以通过列表理解来完成:
这将创建一个列表列表:
[█ for x in dataset]
评估为dataset
中每个列表x
的理解[█ for y in x]
计算列表x
中的每个值y
。你知道吗int(y != 0)
是三元表达式y if y== 0 else 1
的简化,因为三元表达式在Python中很笨拙。y !=0
将导致布尔值False
如果y==0,否则True
。将其转换为int()
将产生与三元逻辑相同的输出(0
如果y是0
,或者在所有其他情况下是1
)。你知道吗完整示例:
收益率:
案例2:如果
dataset
是dict,您可以使用dict理解:完整示例:
收益率:
相关问题 更多 >
编程相关推荐