Maison >développement back-end >Tutoriel Python >Comment définir efficacement les valeurs dans les cellules Pandas DataFrame par index ?

Comment définir efficacement les valeurs dans les cellules Pandas DataFrame par index ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 18:02:12580parcourir

How to Efficiently Set Values in Pandas DataFrame Cells by Index?

Définition des valeurs dans les cellules Pandas DataFrame par index

Pour définir une valeur de cellule spécifique dans un Pandas DataFrame en fonction de son index, considérez ce qui suit :

Utilisation de df.set_value(index, colonne, value)

df.set_value() permet d'attribuer directement une valeur à une cellule en utilisant son index. Cependant, notez que cette méthode est vouée à la dépréciation.

# Correct way:
df.set_value('C', 'x', 10)

Utilisation df.at[index, column] = value

L'alternative préférée est d'utiliser df .at[] pour mettre à jour directement les valeurs des cellules. Cette méthode est plus efficace et fournit une syntaxe plus concise.

df.at['C', 'x'] = 10

Utilisation de l'indexation chaînée

Attention : Bien que cela puisse sembler intuitif utilisez l'indexation chaînée pour définir les valeurs des cellules (par exemple, df.xs('C')['x'] = 10), cette méthode ne modifie que une copie de la ligne ou de la colonne. Pour modifier directement le DataFrame d'origine, utilisez soit df.set_value() ou df.at[].

Pourquoi l'indexation chaînée échoue

Indexation chaînée (par exemple, df. xs('C')['x'] = 10) crée un nouvel objet DataFrame avec une référence aux données d'origine. Les affectations effectuées à ce nouvel objet ne sont pas propagées au DataFrame d'origine.

Performances

Les benchmarks montrent que df.set_value() est l'option la plus rapide, suivie de df' x' = 10 et df.at['C', 'x'] = 10. Cependant, les différences de performances peuvent varier en fonction de la taille du DataFrame et complexité.

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