在pandas中创建列的编码列

问题描述 投票:-2回答:1

我的pandas数据框中的列具有以下值之一[优秀,良好,平均,差,非常糟糕]。我想在同一个数据帧中创建一个列,每个[优秀,好,平均,坏,非常糟糕]分别转换为[EX,G,Avg,B,VB]。

我搜索了它,但大多数答案是使用我不太熟悉的scikit-learn来解释的。有没有办法可以用熊猫来完成?

python pandas dataframe
1个回答
3
投票

使用由map创建的dictzip

L1 = ['excellent', 'good', 'average', 'bad', 'very bad']
L2 = ['EX', 'G', 'Avg', 'B', 'VB']

df['col'] = df['col'].map(dict(zip(L1, L2)))

详情:

print (dict(zip(L1, L2)))
{'excellent': 'EX', 'good': 'G', 'average': 'Avg', 'bad': 'B', 'very bad': 'VB'}
© www.soinside.com 2019 - 2024. All rights reserved.