Maison  >  Article  >  développement back-end  >  Comment remplacer des valeurs spécifiques dans une colonne Pandas DataFrame en fonction de conditions ?

Comment remplacer des valeurs spécifiques dans une colonne Pandas DataFrame en fonction de conditions ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 20:41:02136parcourir

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

Pandas DataFrame : remplacement de valeur ciblé en fonction des conditions

Dans Pandas, il est souvent nécessaire de modifier des valeurs spécifiques au sein d'un DataFrame en fonction de certains critères . Bien qu'une approche courante consiste à utiliser loc pour sélectionner des lignes, il est crucial de comprendre comment cibler précisément une colonne spécifique pour la modification de valeur.

Considérez le DataFrame suivant, dans lequel nous souhaitons remplacer les valeurs dans la « Première saison ». colonne qui dépasse 1990 par l'entier 1 :

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens          1996          326
5  San Franciso 49ers          1950         1003

Une première tentative utilisant uniquement la fonction loc a abouti au remplacement de toutes les valeurs des lignes sélectionnées plutôt que uniquement de la colonne ciblée. Pour remédier à cela, nous devons spécifier explicitement la colonne « Première saison » comme deuxième argument de loc :

df.loc[df['First Season'] > 1990, 'First Season'] = 1

Cette approche ciblée garantit que seules les valeurs de la colonne « Première saison » satisfont à la condition sont remplacé par 1, laissant les autres colonnes inchangées.

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers          1950         1003

Alternativement, si le résultat souhaité est un indicateur booléen, vous pouvez utiliser la condition pour créer une série booléenne et la convertir en nombres entiers, où Vrai et Faux traduire respectivement par 1 et 0 :

df['First Season'] = (df['First Season'] > 1990).astype(int)

Cette approche donne un DataFrame avec des valeurs mises à jour :

                 Team  First Season  Total Games
0      Dallas Cowboys             0          894
1       Chicago Bears             0         1357
2   Green Bay Packers             0         1339
3      Miami Dolphins             0          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers             0         1003

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn