首页 > 解决方案 > 使用 preprocessing.LabelEncoder() 将许多特征的二进制值转换为数值

问题描述

我知道我可以使用下面的代码将所有功能的二进制数转换为数值,但是如何在不使用feature = le.fit_transform(list(data["feature"]每个功能的情况下将我的所有功能更改为数值?有没有另一种更简洁的写法?

data = pd.read_csv("car.data")    
le = preprocessing.LabelEncoder()    
buying = le.fit_transform(list(data["buying"]    
maint = le.fit_transform(list(data["maint"]    
door = le.fit_transform(list(data["door"]    
persons = le.fit_transform(list(data["persons"]    
lug_boot = le.fit_transform(list(data["lug_boot"]    
safety = le.fit_transform(list(data["safety"]

标签: python

解决方案


可能最简单的方法是使用字典理解。

data = pd.read_csv("car.data")
le = preprocessing.LabelEncoder()
result = {
    label: le.fit_transform(list(data[label]))
    for label in (
        "buying", "maint", "door", "persons",
        "lug_boot", "safety"
    )
}

推荐阅读