如何为数据框中的值分配数字

时间:2018-09-22 11:09:25

标签: python pandas loops dataframe

让我说我有一个数据框

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

1 个答案:

答案 0 :(得分:0)

使用scikit-learn的Label Encoder很容易做到。

le = LabelEncoder()
df['C'] = le.fit_transform(df['C'])