Comment échanger deux lignes dans Pandas (avec exemple)
Vous pouvez utiliser la fonction personnalisée suivante pour échanger la position de deux lignes dans un DataFrame pandas :
def swap_rows(df, row1, row2):
df.iloc[row1], df.iloc[row2] = df.iloc[row2].copy(), df.iloc[row1].copy()
return df
Cette fonction échangera les positions des lignes dans les positions d’index row1 et row2 dans le DataFrame.
L’exemple suivant montre comment utiliser cette fonction dans la pratique.
Exemple : échanger deux lignes dans Pandas
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team' : ['Mavs', 'Nets', 'Kings', 'Cavs', 'Heat', 'Magic'], 'points' : [12, 15, 22, 29, 24, 22], 'assists': [4, 5, 10, 8, 7, 10]}) #view DataFrame print(df) team points assists 0 Mavs 12 4 1 Nets 15 5 2 Kings 22 10 3 Cavs 29 8 4 Heat 24 7 5 Magic 22 10
Nous pouvons définir une fonction swap_rows() pour échanger les lignes aux positions d’index 0 et 4 dans le DataFrame :
#define function to swap rows
def swap_rows(df, row1, row2):
df.iloc[row1], df.iloc[row2] = df.iloc[row2].copy(), df.iloc[row1].copy()
return df
#swap rows in index positions 0 and 4
df = swap_rows(df, 0, 4)
#view updated DataFrame
print(df)
team points assists
0 Heat 24 7
1 Nets 15 5
2 Kings 22 10
3 Cavs 29 8
4 Mavs 12 4
5 Magic 22 10
Notez que les lignes aux positions d’index 0 et 4 ont été permutées tandis qu’une ligne sur deux est restée à la même position.
Remarque : Dans la fonction swap_rows() , nous avons utilisé la fonction .iloc pour sélectionner les lignes du DataFrame en fonction de leur position d’index.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Pandas : comment compter les occurrences de valeur spécifique dans une colonne
Pandas : obtenir l’index des lignes dont la colonne correspond à la valeur
Pandas : Comment compter les valeurs manquantes dans DataFrame