Pandas : Comment insérer une ligne à une position d’index spécifique



Vous pouvez utiliser la syntaxe de base suivante pour insérer une ligne dans une position d’index spécifique dans un DataFrame pandas :

#insert row in between index position 2 and 3
df.loc[2.5] = value1, value2, value3, value4

#sort index
df = df.sort_index().reset_index(drop=True)

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : insérer une ligne à une position d’index spécifique dans Pandas

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

  team  points  assists  rebounds
0    A      18        5        11
1    B      22        7         8
2    C      19        7        10
3    D      14        9         6
4    E      14       12         6
5    F      11        9         5
6    G      20        9         9
7    H      28        4        12

Nous pouvons utiliser la syntaxe suivante pour insérer une ligne entre les positions d’index 2 et 3 :

#insert row in between index position 2 and 3
df.loc[2.5] = 'Z', 10, 5, 7

#sort index
df = df.sort_index().reset_index(drop=True)

#view updated DataFrame
print(df)

  team  points  assists  rebounds
0    A      18        5        11
1    B      22        7         8
2    C      19        7        10
3    Z      10        5         7
4    D      14        9         6
5    E      14       12         6
6    F      11        9         5
7    G      20        9         9
8    H      28        4        12

Notez qu’une ligne a été insérée entre les positions d’index précédentes 2 et 3 avec les informations suivantes :

  • équipe:Z
  • points : 10
  • passes décisives : 5
  • rebonds : 7

En utilisant les fonctions sort_index() et reset_index() , nous avons ensuite pu réattribuer des valeurs à l’index allant de 0 à 8.

Notez que la nouvelle ligne doit contenir le même nombre de valeurs que le nombre de colonnes existantes.

Par exemple, si nous tentions d’insérer une nouvelle ligne avec seulement trois valeurs, nous recevrions une erreur :

#attempt to insert row with only three values
df.loc[2.5] = 10, 5, 7

ValueError: cannot set a row with mismatched columns

Nous recevons une ValueError car le nombre de valeurs dans la nouvelle ligne ne correspond pas au nombre de colonnes existantes dans le DataFrame.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment insérer une colonne dans un DataFrame Pandas
Comment ajouter des lignes à un DataFrame Pandas
Comment supprimer des lignes dans Pandas DataFrame en fonction de la condition

Ajouter un commentaire

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