Come utilizzare pandas apply() sul posto


La funzione pandas apply() può essere utilizzata per applicare una funzione a righe o colonne di un DataFrame pandas.

Questa funzione è diversa da altre funzioni come drop() e replace() che forniscono un argomento inplace:

 df. drop ([' column1 '], inplace= True )

df. rename ({' old_column ': ' new_column '}, inplace= True )

La funzione apply() non ha un argomento sul posto, quindi dobbiamo usare la seguente sintassi per trasformare un DataFrame sul posto:

 df = df. apply ( lambda x: x* 2 )

I seguenti esempi mostrano come utilizzare questa sintassi in pratica con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

        points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Esempio 1: utilizzare apply() sul posto per una colonna

Il codice seguente dimostra come utilizzare apply() per trasformare una colonna di frame di dati sul posto:

 #multiply all values in 'points' column by 2 in place
df. loc [:, ' points '] = df. points . apply ( lambda x: x* 2 )

#view updated DataFrame
df

points assists rebounds
0 50 5 11
1 24 7 8
2 30 7 10
3 28 9 6
4 38 12 6
5 46 9 5
6 50 9 9
7 58 4 12

Esempio 2: utilizzare apply() sul posto per più colonne

Il codice seguente dimostra come utilizzare apply() per trasformare più colonne di frame di dati sul posto:

 multiply all values in 'points' and 'rebounds' column by 2 in place
df[[' points ', ' rebounds ']] = df[[' points ', ' rebounds ']]. apply ( lambda x: x* 2 )

#view updated DataFrame
df

	points assists rebounds
0 50 5 22
1 24 7 16
2 30 7 20
3 28 9 12
4 38 12 12
5 46 9 10
6 50 9 18
7 58 4 24

Esempio 3: utilizzare apply() per tutte le colonne

Il codice seguente mostra come utilizzare apply() per trasformare tutte le colonne nel data frame sul posto:

 #multiply values in all columns by 2
df = df. apply ( lambda x: x* 2 )

#view updated DataFrame
df

	points assists rebounds
0 50 10 22
1 24 14 16
2 30 14 20
3 28 18 12
4 38 24 12
5 46 18 10
6 50 18 18
7 58 8 24

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni nei panda:

Come calcolare la somma delle colonne in Pandas
Come calcolare la media delle colonne in Pandas
Come trovare il valore massimo delle colonne in Pandas

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *