Pandas DataFrame : remplacement de valeur ciblée 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 la valeur.
Considérez le DataFrame suivant, dans lequel nous souhaitons remplacer les valeurs dans la « Première saison ». colonne qui dépasse 1990 avec 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 'First Season' 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 » satisfaisant à la condition sont remplacées 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 se traduisent respectivement par 1 et 0. :
df['First Season'] = (df['First Season'] > 1990).astype(int)
Cette approche génère 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
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3