Допустим, у меня есть датафрейм

A     B     C
john  I     agree 
ryan  II    agree
rose  V     strongly agree 
Shawn VI    disagree 

Что я хочу сделать, это присвоить номера значениям столбца C, как это?

A     B     C
john  I     1 
ryan  II    1
rose  V     2
Shawn VI    0

Кто-нибудь знает, как это сделать?

1
Ryan 21 Сен 2018 в 13:13

2 ответа

Лучший ответ

Используйте map от dictionary :

df['C'] = df['C'].map({'agree':1, 'strongly agree':2, 'disagree':0})
print (df)
       A   B  C
0   john   I  1
1   ryan  II  1
2   rose   V  2
3  Shawn  VI  0
3
jezrael 21 Сен 2018 в 10:15

Вы также можете использовать apply и lambda

        A               C
0  john           agree
1  ryan  strongly agree
2  rose        disagree

Просто сделать

df_t['C'] = df_t['C'].apply(lambda x: 1 if x =='agree' else (0 if x=='disagree' else 2))

Что приводит к

     A  C
0  john  1
1  ryan  2
2  rose  0

Но использование map, как указано выше @jezrael, является лучшим решением.

0
Sergey Solod 21 Сен 2018 в 11:04