我有一个数据框如下所示:
cc temp 0 US 37.0 1 CA 12.0 2 US 35.0 3 AU 20.0
现在我使用以下代码将其转换为分类:
df = df.cc.cat.codes
我得到的输出如下:
cc temp 0 2 37.0 1 1 12.0 2 2 35.0 3 0 20.0
我的需求是如何将它还原为原始值,有什么想法吗?
回答:
你可以使用sklearn.preprocessing
中的LabelEncoder
,它提供了与你所做操作类似的功能。
以下是如何在你的数据框上操作的方法:
# 假设你已经创建了数据框from sklearn.preprocessing import LabelEncoderle = LabelEncoder()# 将分类变量转换为标签编码形式df['cc'] = le.fit_transform(df['cc'])# 从标签编码形式转换回标签df['cc'] = le.inverse_transform(df['cc'])
你可以在https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html了解更多关于标签编码器和scikit-learn的实现信息。
阅读关于其他形式的分类变量编码(如独热编码和目标编码)以及在何处使用它们也可能有所帮助。