-1
votes

Attribuer une valeur dans la colonne en fonction de la chaîne dans une autre colonne

J'ai le code suivant: xxx pré>

qui entraîne le tableau suivant P>

    col1        col2
0   SUPER_280   280
1   AASD        280
2   AASD        280
3   SUPER_350   350
4   AASD        350
5   SUPER_150   150
6   AASD        150
7   AASD        150
​````

Thanks in advance


0 commentaires

4 Réponses :


1
votes

Nous pouvons utiliser Série.str.contains pour vérifier où le mot super apparaît, Alors gardez les 3 derniers caractères avec Série.where et remplissez le reste avec série.ffill : xxx

Nous pouvons également utiliser pd.to_numérique avec erreurs = 'coerce' Pour transformer les 3 derniers caractères en numériques et remplir le reste avec série.fr xxx

sortie xxx < / pré>


0 commentaires

1
votes

Nous pouvons utiliser str.split + série.ffill : xxx

ou en utilisant np.where Pour vérifier conditionnellement si col1 a super : xxx xxx


0 commentaires

1
votes

valeur de test super code> par Series.str.Contains Code> , obtenez les 3 dernières valeurs de la colonne par indexation et remplissage vers l'avant Valeurs manquantes:

m = df1['col1'].str.contains('SUPER')

df1.loc[m, 'col2'] = df1.loc[m, 'col1'].str[-3:]
df1['col2'] = df1['col2'].ffill()
print (df1)
        col1 col2
0  SUPER_280  280
1       AASD  280
2       AASD  280
3  SUPER_350  350
4       AASD  350
5  SUPER_150  150
6       AASD  150
7       AASD  150


0 commentaires

1
votes

Il sépare l'expression en fonction du caractère _ , prend le dernier élément et l'attribue à col2 s'il est chiffre et attribue Aucun à col2 sinon. Ensuite, remplit avec rill en fonction de la valeur précédente. XXX


0 commentaires