首页 > 解决方案 > 使用二进制编码:如何从编码值中取回原始值?

问题描述

我有以下数据框:

data={'automobile':['car','car','car','car','scooter','scooter','bike','bike','bike']}
df=pd.DataFrame(data)

encoder=ce.BinaryEncoder(cols=['automobile'])
df=encoder.fit_transform(df)

这给了我预期的二进制列。但是在执行聚类分析时,我如何才能知道哪个二进制值对应于哪个汽车类别。

标签: pythonencodingscikit-learncategorical-data

解决方案


如果您想保留 Label 进行“解码”,我建议您使用LabelEncoder

import pandas as pd
from sklearn.preprocessing import LabelEncoder
data = {'automobile': ['car', 'car', 'car', 'car', 'scooter', 'scooter', 'bike', 'bike', 'bike']}
df = pd.DataFrame(data)

ler = LabelEncoder().fit(df['automobile'])
df['automobile']=ler.transform(df['automobile'])

dico = dict(zip(ler.classes_, ler.transform(ler.classes_)))

print(df)
print(dico)

输出:df

   automobile
0           1
1           1
2           1
3           1
4           2
5           2
6           0
7           0
8           0

输出: 迪科

{'bike': 0, 'car': 1, 'scooter': 2}

推荐阅读