将字符串列转换为整数?

2024-04-20 07:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

`# Convert string column to integer
def str_column_to_int(dataset, column):
      class_values = [row[column] for row in dataset]
      unique = set(class_values)
      lookup = dict()
      for i, value in enumerate(unique):
        lookup[value] = i
      for row in dataset:
        row[column] = lookup[row[column]]
    return lookup`

上面的代码是将一列字符串转换为整数(或一个热编码)的最基本的机器学习代码片段。然而,我很难理解这段代码,尤其是class_values = [row[column] for row in dataset] unique = set(class_values)这两行代码做了什么使它做了一个热编码?你知道吗


Tags: to代码inconvert编码forvaluecolumn
2条回答
>>> dataset = [
...     [1, 2],
...     [1, 2],
...     [1, 2]
... ]
>>> column = 1
>>> class_values = [row[column] for row in dataset]
>>> class_values
[2, 2, 2]
>>> unique = set(class_values)
>>> unique
{2}

所以class_values = [row[column] for row in dataset]就是所谓的列表理解。这是用python创建列表的简写方法。这句话相当于说:

class_values = []
for row in dataset:
    class_values.append(row[column])

这些在Python中非常常见,所以一定要阅读并使用它们进行练习。他们使你的代码更干净,节省时间。你知道吗

集合可以准备在这里:Sets

简言之,它们是一个独特的分组。因此,如果你做了一组列表,你会得到一个包含列表中所有唯一值的对象

相关问题 更多 >