Les DataFrames Pandas sont une pierre angulaire de la manipulation de données en Python. Fréquemment, vous aurez besoin de modifier des cellules individuelles au sein de votre DataFrame. Cet article explore trois méthodes efficaces pour y parvenir en utilisant l’index du DataFrame.
Table des matières
- Définir les valeurs des cellules avec
.at
- Définir les valeurs des cellules avec
.loc
- La méthode
.set_value()
obsolète
Définir les valeurs des cellules avec .at
L’accesseur .at
offre un moyen très efficace d’accéder et de modifier une seule cellule dans un DataFrame en utilisant ses étiquettes de ligne et de colonne. Sa vitesse le rend idéal pour les affectations de valeurs uniques.
import pandas as pd
# DataFrame d'exemple
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])
# Définir la valeur de la cellule à la ligne 'B' et à la colonne 'col1' à 10
df.at['B', 'col1'] = 10
print(df)
Ceci affichera :
col1 col2
A 1 4
B 10 5
C 3 6
.at
est optimisé pour la vitesse et la simplicité lorsqu’il s’agit de cellules uniques. Cependant, toute tentative d’affectation de plusieurs valeurs entraînera une TypeError
.
Définir les valeurs des cellules avec .loc
L’accesseur .loc
offre une plus grande flexibilité. Il permet l’indexation basée sur les étiquettes pour les lignes et les colonnes et peut gérer les affectations de valeurs uniques ou de tableaux à plusieurs cellules simultanément.
import pandas as pd
# DataFrame d'exemple
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])
# Définir la valeur de la cellule à la ligne 'A' et à la colonne 'col2' à 100
df.loc['A', 'col2'] = 100
print(df)
# Définir plusieurs valeurs
df.loc[['A', 'B'], 'col1'] = [5, 15] #Affecte 5 à A et 15 à B
print(df)
Ceci affichera d’abord :
col1 col2
A 1 100
B 2 5
C 3 6
Puis :
col1 col2
A 5 100
B 15 5
C 3 6
.loc
est la méthode la plus polyvalente, adaptée aux mises à jour de cellules uniques et aux scénarios plus complexes impliquant plusieurs lignes et colonnes. Bien que polyvalente, pour les modifications de cellules uniques, .at
est généralement plus rapide.
La méthode .set_value()
obsolète
La méthode .set_value()
est obsolète dans les versions plus récentes de Pandas. Bien qu’elle puisse encore fonctionner dans les versions plus anciennes, l’utilisation de .at
ou .loc
est fortement recommandée pour une meilleure compatibilité et des performances supérieures. Évitez d’utiliser .set_value()
dans le nouveau code.
En résumé, .at
et .loc
offrent des moyens efficaces de modifier les cellules individuelles d’un DataFrame Pandas. Préférez .at
pour sa vitesse et sa simplicité avec les valeurs uniques, et .loc
pour sa flexibilité lorsque vous travaillez avec plusieurs cellules ou des modifications plus complexes.