Définir la valeur d'une cellule spécifique dans un DataFrame Pandas
Vous avez créé un DataFrame et souhaitez modifier la valeur d'une cellule particulière . Cependant, l'utilisation de df.xs('C')['x'] = 10 ne met pas à jour le DataFrame comme prévu. Pourquoi ?
Le problème vient du fonctionnement de df.xs(). Par défaut, il renvoie un nouveau DataFrame avec une copie des données. Ainsi, df.xs('C')['x'] = 10 modifie uniquement le nouveau DataFrame, pas l'original.
À la place, vous pouvez utiliser df['x']['C'] = 10. Cette méthode renvoie une vue du DataFrame d'origine et toutes les modifications seront appliquées à df.
Cependant, l'approche recommandée utilise .at ou .iat :
Pourquoi df.xs('C')['x'] = 10 est-il obsolète ?
df.set_value('C' , 'x', 10) est la méthode préférée car elle est nettement plus rapide. Cependant, df.set_value() devrait être obsolète.
Comparaison des performances
Les benchmarks montrent que df.set_value() surpasse les autres options en termes de vitesse :
In [18]: %timeit df.set_value('C', 'x', 10) 100000 loops, best of 3: 2.9 µs per loop In [20]: %timeit df['x']['C'] = 10 100000 loops, best of 3: 6.31 µs per loop In [81]: %timeit df.at['C', 'x'] = 10 100000 loops, best of 3: 9.2 µs per loop
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!