J'ai une variable catégorielle: df ['raison'] avec 5 niveaux (0-4) et je veux regrouper le niveau 1 et le niveau 3 à un nouveau niveau appelé 'eau' et le niveau 2 et le niveau 4 à 'Non-eau' et laissez le niveau 0 tranquille. Je veux donc le réduire de 5 à 3 niveaux en python. J'ai utilisé une boucle for, mais elle n'a pas renvoyé le résultat correct. Merci pour votre contribution.

for i in df['reason']:
    if i==0:
        df['reason']='Not failed'
    elif i in [1,3]:
        df['reason']='Water'
    else:  
        df['reason']='Non-water'
0
lwu29 3 nov. 2019 à 18:45

1 réponse

Meilleure réponse
level_map = {'level1': 'water', 'level3': 'water',
             'level2': 'Non-water', 'level4': 'Non-water', 
             'level5': 'level5'}

df['new_level'] = df['level'].apply(lambda x: level_map[x])
0
aprilangel 3 nov. 2019 à 16:02