让我说我有一个数据框
A B C D
john I agree Average
ryan II agree agree
rose V strongly agree disagree
Shawn VI disagree agree
我要做的是像这样为C列值分配数字?
A B C D
john I 1 3
ryan II 1 1
rose V 2 0
Shawn VI 0 1
我可以将map用于单列,但是如果有多于一列,我该如何将值更改为数字而不用为每一列写单个字符(我知道我可以用于循环,但是问题是我在这里应用)
有人知道该怎么做吗?
我尝试使用for循环
def assignNumbers(df):
for i in df:
second= df[i].map({'Average':3, 'Agree':1, 'Disagree':0, 'Strongly Agree':2})
return second
答案 0 :(得分:0)
使用scikit-learn的Label Encoder很容易做到。
le = LabelEncoder()
df['C'] = le.fit_transform(df['C'])