Twee lijnen verwisselen in panda's (met voorbeeld)


U kunt de volgende aangepaste functie gebruiken om de positie van twee rijen in een Panda DataFrame te verwisselen:

 def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

Deze functie wisselt de rijposities in de indexposities rij1 en rij2 in het DataFrame.

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: verwissel twee regels in Pandas

Stel dat we de volgende panda’s DataFrame hebben:

 import pandas as pd

#createDataFrame
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
2Kings 22 10
3 Cavs 29 8
4 Heat 24 7
5 Magic 22 10

We kunnen een functie swap_rows() definiëren om rijen op indexposities 0 en 4 in het DataFrame te verwisselen:

 #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
2Kings 22 10
3 Cavs 29 8
4 Mavs 12 4
5 Magic 22 10

Merk op dat de rijen op indexposities 0 en 4 werden verwisseld, terwijl elke andere rij op dezelfde positie bleef.

Opmerking : in de functie swap_rows() hebben we de functie .iloc gebruikt om de rijen uit het DataFrame te selecteren op basis van hun indexpositie.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:

Panda’s: hoe u exemplaren met een specifieke waarde in een kolom kunt tellen
Panda’s: haal de index op van rijen waarvan de kolom overeenkomt met de waarde
Panda’s: ontbrekende waarden tellen in DataFrame

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert