在pandas中创建列的编码列

时间:2018-06-01 05:08:11

标签: python pandas dataframe

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

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

1 个答案:

答案 0 :(得分:3)

使用dict创建的zip使用map

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'}