Data Science

Modification Efficace des Cellules d’un DataFrame Pandas à l’aide des Indices

Spread the love

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

  1. Définir les valeurs des cellules avec .at
  2. Définir les valeurs des cellules avec .loc
  3. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *