SlideShare a Scribd company logo
1 of 15
Download to read offline
Corso Python e Strutture Dati
Pandas DataFrame:
metodi - I
Funzione built-in map
La funzione built-in map consente di costruire una list
trasformando tutti gli elementi di un iterable
L1= map ( Trasf() , ITERABLE)
dove: ITERABLE è un qualunque oggetto iterabile;
Trasf(): può essere: una funzione built-in
una funzione anonima
una funzione custom
Funzione built-in filter
La funzione built-in filter consente di filtrare una lista selezionan-
do solo i valori che soddisfano la condizione imposta.
L1= filter ( Condiz() , ITERABLE)
dove: Condiz() contiene la condizione che deve essere è soddisfatta per inserire
l’elemento dell’oggetto iterable nella lista. Essa può essere espressa tramite:
una funzione anonima una funzione custom
def A(X):
....: if X%2==0: return True
....: else: return False
L1=filter(A, [10,20,31])
L1=filter(lambda x: x%2==0, [10,20,31])
Funzione built-in reduce
La funzione built-in reduce consente di combinare i primi due
elementi di un oggetto iterable e di combinare in modo
ricursivo il risultato all’elemento successivo
reduce ( lambda x,y : x+y, I1)
calcolo la somma degli elementi contenuti nell’iterable I1
Series: metodo map
Il metodo map consente di trasformare i valori di una
serie, sulla base di:
una funzione built-in
S=pandas.Series( [10,20,30,40])Data una serie
una funzione anonima
un dizionario
S.map(str)
S.map(lambda x: x+1)
S.map( DZ ) dove DZ={10:’B’,20:’B’...}
una funzione custom S.map( F1 ) dove F1 è una funzione
custom
Series: metodi - sum, min, max, mean
Il metodo
la sommatoria degli elementi di S
S=pandas.Series( [10,20,30,40])Data una serie
il minimo della serie
la media della serie
S.sum()
il massimo della serie
S.min()
S.max()
S.mean()
calcola
calcola
calcola
calcola
Corso Python e Strutture Dati
maggio 2018
Pandas DataFrame:
metodi - II
DataFrame: metodo concat
Dati due DataFrame (D1 e D2), il metodo pandas.concat crea un
terzo DataFrame accodando il secondo al primo:
V1 V2
0 10 ‘a’
1 20 ‘b’
2 30 ‘c’
3 40 ‘d’
V1 V3
0 110 ‘XX’
1 120 ‘XX’
2 130 ‘YY’
3 140 ‘YY’
pandas.concat( [ DF1, DF2 ] )
V1 V2 V3
0 10 ‘a’ NaN
1 20 ‘b’ NaN
2 30 ‘c’ NaN
3 40 ‘d’ NaN
0 110 NaN ‘XX’
1 120 NaN ‘XX’
2 130 NaN ‘YY’
3 140 NaN ‘YY’
DataFrame: metodo merge
Dati due DataFrame (D1 e D2), il metodo pandas.merge crea un
terzo DataFrame combinando gli elementi dei due dataframe
V1 V2
0 10 ‘RM’
1 20 ‘RM’
2 30 ‘MI’
3 40 ‘MI’
4 50 ‘TO’
V2 V3
0 ‘RM’ ‘ROMA’
1 ‘MI’ ‘MILANO’
2 ‘TO’ ‘TORINO’
pandas.merge(DF1, DF2, on=’V2’ )
V1 V2 V3
0 10 ‘RM’ ‘ROMA’
1 20 ‘RM’ ‘ROMA’
2 30 ‘MI’ ‘MILANO’
3 40 ‘MI’ ‘MILANO’
4 50 ‘TO’ ‘TORINO’
DataFrame: metodo groupby
Dato un DataFrame, il metodo .groupby consente di scomporlo in tanti sottogruppi, di
applicare una trasformata a questi sottogruppi, e di ricomporre un DataFrame finale
impilando i risultati ottenuti
V1 V2
0 10 ‘RM’
1 20 ‘RM’
2 30 ‘MI’
3 40 ‘MI’
4 50 ‘TO’
V1 V2
0 10 ‘RM’
1 20 ‘RM’
V1 V2
2 30 ‘MI’
3 40 ‘MI’
V1 V2
4 50 ‘TO’
V1
30
V1
70
V1
50
V1
V2
‘RM’ 30
‘MI’ 70
‘TO’ 50
DF .groupby( ‘V2’ ) .sum()
DataFrame: metodo applymap
Dato un DataFrame, il metodo .applymap esegue il metodo
map per ogni colonna (vista come una Series) del dataframe
V1 V2
PROV
‘RM’ 30 120
‘MI’ 70 210
‘TO’ 50 160
‘PD’ 40 170
‘BO’ 60 160
DF.applymap(F1)
Index
columns
def F1(X):
Y=...X….
return Y
V1 V2
PROV
‘RM’ F1(30) F1(120)
‘MI’ F1(70) F1(210)
‘TO’ F1(50) F1(160)
‘PD’ F1(40) F1(170)
‘BO’ F1(60) F1(160)
Data una
funzione
DataFrame: metodo apply
Dato un DataFrame, il metodo .apply esegue una
trasformazione di sottoparti di un dataframe, rappresentate:
dalle colonne
dalle righe
da gruppi
opzione axis=0
opzione axis=1
ottenuto con .groupby
La trasformazione può essere definita tramite: a) una funzione
built-in; b) una funzione anonima; c) una funzione custom
DataFrame: metodo apply - esempi
DF =
V1 V2
PROV
‘RM’ 30 120
‘MI’ 70 210
‘TO’ 50 160
‘MI’ 40 170
‘TO’ 60 160
DF.apply(lambda x: x. mean(),
axis=1)
‘RM’ 75
‘MI’ 140
‘TO’ 105
‘MI’ 105
‘TO’ 110
DF.apply(lambda x: x. mean(),
axis=0)
V1 V2
50 62
DF.groupby(level=’PROV’)
.apply(lambda x: x. mean())
V1 V2
PROV
‘RM’ 30 120
‘MI’ 55 185
‘TO’ 55 160
LEZIONE 1..
www.fordatascientist.org
E00-PyData
E06-Pandas-DF-Methods.ipynb
CONTATTI TELEFONO
051 22 35 20
EMAIL
WORKSHOP@VICEM.IT

More Related Content

What's hot

Zanichelli test – stampa
Zanichelli test – stampaZanichelli test – stampa
Zanichelli test – stampaIncredibile Hulc
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)STELITANO
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeSergio Porcu
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiSergio Porcu
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneSergio Porcu
 

What's hot (8)

Ese01 java
Ese01 javaEse01 java
Ese01 java
 
ADT Stack
ADT StackADT Stack
ADT Stack
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
Zanichelli test – stampa
Zanichelli test – stampaZanichelli test – stampa
Zanichelli test – stampa
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, code
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
 

Similar to Strutture dati 06-dataframe

Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandasStudiabo
 
Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandasStudiabo
 
Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02Jose Aldo Ruiz Ycanaque
 
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazionescipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazioneFrancesco Cavazzana
 
Web advanced-03-d3 js-base
Web advanced-03-d3 js-baseWeb advanced-03-d3 js-base
Web advanced-03-d3 js-baseStudiabo
 
PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010Enrico Pirozzi
 
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdfPasqualeRuocco5
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandasStudiabo
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandasStudiabo
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindexStudiabo
 

Similar to Strutture dati 06-dataframe (12)

Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandas
 
Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandas
 
Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02Cn01 matlabmat-inf-090304063949-phpapp02
Cn01 matlabmat-inf-090304063949-phpapp02
 
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazionescipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
 
Web advanced-03-d3 js-base
Web advanced-03-d3 js-baseWeb advanced-03-d3 js-base
Web advanced-03-d3 js-base
 
08 mapreduce
08   mapreduce08   mapreduce
08 mapreduce
 
PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010
 
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
 

More from Studiabo

Big data rischi
Big data rischiBig data rischi
Big data rischiStudiabo
 
Big data correlazioni
Big data correlazioniBig data correlazioni
Big data correlazioniStudiabo
 
Ravenna2019 - lezione Big Data
Ravenna2019 - lezione Big DataRavenna2019 - lezione Big Data
Ravenna2019 - lezione Big DataStudiabo
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshapeStudiabo
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStudiabo
 
Strutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStrutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStudiabo
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStudiabo
 
Strutture dati 01-numeristringhe
Strutture dati 01-numeristringheStrutture dati 01-numeristringhe
Strutture dati 01-numeristringheStudiabo
 
Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019Studiabo
 
Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018Studiabo
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshapeStudiabo
 
Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018Studiabo
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStudiabo
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindexStudiabo
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStudiabo
 
Strutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStrutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStudiabo
 
Strutture dati 01-numeristringhe
Strutture dati 01-numeristringheStrutture dati 01-numeristringhe
Strutture dati 01-numeristringheStudiabo
 
Strutture dati 00-corso2018
Strutture dati 00-corso2018Strutture dati 00-corso2018
Strutture dati 00-corso2018Studiabo
 
Data mining 00-corso2017
Data mining 00-corso2017Data mining 00-corso2017
Data mining 00-corso2017Studiabo
 
Data mining 05-numpypandas
Data mining 05-numpypandasData mining 05-numpypandas
Data mining 05-numpypandasStudiabo
 

More from Studiabo (20)

Big data rischi
Big data rischiBig data rischi
Big data rischi
 
Big data correlazioni
Big data correlazioniBig data correlazioni
Big data correlazioni
 
Ravenna2019 - lezione Big Data
Ravenna2019 - lezione Big DataRavenna2019 - lezione Big Data
Ravenna2019 - lezione Big Data
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshape
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
 
Strutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStrutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltin
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltin
 
Strutture dati 01-numeristringhe
Strutture dati 01-numeristringheStrutture dati 01-numeristringhe
Strutture dati 01-numeristringhe
 
Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019
 
Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshape
 
Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltin
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
 
Strutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStrutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltin
 
Strutture dati 01-numeristringhe
Strutture dati 01-numeristringheStrutture dati 01-numeristringhe
Strutture dati 01-numeristringhe
 
Strutture dati 00-corso2018
Strutture dati 00-corso2018Strutture dati 00-corso2018
Strutture dati 00-corso2018
 
Data mining 00-corso2017
Data mining 00-corso2017Data mining 00-corso2017
Data mining 00-corso2017
 
Data mining 05-numpypandas
Data mining 05-numpypandasData mining 05-numpypandas
Data mining 05-numpypandas
 

Strutture dati 06-dataframe

  • 1. Corso Python e Strutture Dati Pandas DataFrame: metodi - I
  • 2. Funzione built-in map La funzione built-in map consente di costruire una list trasformando tutti gli elementi di un iterable L1= map ( Trasf() , ITERABLE) dove: ITERABLE è un qualunque oggetto iterabile; Trasf(): può essere: una funzione built-in una funzione anonima una funzione custom
  • 3. Funzione built-in filter La funzione built-in filter consente di filtrare una lista selezionan- do solo i valori che soddisfano la condizione imposta. L1= filter ( Condiz() , ITERABLE) dove: Condiz() contiene la condizione che deve essere è soddisfatta per inserire l’elemento dell’oggetto iterable nella lista. Essa può essere espressa tramite: una funzione anonima una funzione custom def A(X): ....: if X%2==0: return True ....: else: return False L1=filter(A, [10,20,31]) L1=filter(lambda x: x%2==0, [10,20,31])
  • 4. Funzione built-in reduce La funzione built-in reduce consente di combinare i primi due elementi di un oggetto iterable e di combinare in modo ricursivo il risultato all’elemento successivo reduce ( lambda x,y : x+y, I1) calcolo la somma degli elementi contenuti nell’iterable I1
  • 5. Series: metodo map Il metodo map consente di trasformare i valori di una serie, sulla base di: una funzione built-in S=pandas.Series( [10,20,30,40])Data una serie una funzione anonima un dizionario S.map(str) S.map(lambda x: x+1) S.map( DZ ) dove DZ={10:’B’,20:’B’...} una funzione custom S.map( F1 ) dove F1 è una funzione custom
  • 6. Series: metodi - sum, min, max, mean Il metodo la sommatoria degli elementi di S S=pandas.Series( [10,20,30,40])Data una serie il minimo della serie la media della serie S.sum() il massimo della serie S.min() S.max() S.mean() calcola calcola calcola calcola
  • 7. Corso Python e Strutture Dati maggio 2018 Pandas DataFrame: metodi - II
  • 8. DataFrame: metodo concat Dati due DataFrame (D1 e D2), il metodo pandas.concat crea un terzo DataFrame accodando il secondo al primo: V1 V2 0 10 ‘a’ 1 20 ‘b’ 2 30 ‘c’ 3 40 ‘d’ V1 V3 0 110 ‘XX’ 1 120 ‘XX’ 2 130 ‘YY’ 3 140 ‘YY’ pandas.concat( [ DF1, DF2 ] ) V1 V2 V3 0 10 ‘a’ NaN 1 20 ‘b’ NaN 2 30 ‘c’ NaN 3 40 ‘d’ NaN 0 110 NaN ‘XX’ 1 120 NaN ‘XX’ 2 130 NaN ‘YY’ 3 140 NaN ‘YY’
  • 9. DataFrame: metodo merge Dati due DataFrame (D1 e D2), il metodo pandas.merge crea un terzo DataFrame combinando gli elementi dei due dataframe V1 V2 0 10 ‘RM’ 1 20 ‘RM’ 2 30 ‘MI’ 3 40 ‘MI’ 4 50 ‘TO’ V2 V3 0 ‘RM’ ‘ROMA’ 1 ‘MI’ ‘MILANO’ 2 ‘TO’ ‘TORINO’ pandas.merge(DF1, DF2, on=’V2’ ) V1 V2 V3 0 10 ‘RM’ ‘ROMA’ 1 20 ‘RM’ ‘ROMA’ 2 30 ‘MI’ ‘MILANO’ 3 40 ‘MI’ ‘MILANO’ 4 50 ‘TO’ ‘TORINO’
  • 10. DataFrame: metodo groupby Dato un DataFrame, il metodo .groupby consente di scomporlo in tanti sottogruppi, di applicare una trasformata a questi sottogruppi, e di ricomporre un DataFrame finale impilando i risultati ottenuti V1 V2 0 10 ‘RM’ 1 20 ‘RM’ 2 30 ‘MI’ 3 40 ‘MI’ 4 50 ‘TO’ V1 V2 0 10 ‘RM’ 1 20 ‘RM’ V1 V2 2 30 ‘MI’ 3 40 ‘MI’ V1 V2 4 50 ‘TO’ V1 30 V1 70 V1 50 V1 V2 ‘RM’ 30 ‘MI’ 70 ‘TO’ 50 DF .groupby( ‘V2’ ) .sum()
  • 11. DataFrame: metodo applymap Dato un DataFrame, il metodo .applymap esegue il metodo map per ogni colonna (vista come una Series) del dataframe V1 V2 PROV ‘RM’ 30 120 ‘MI’ 70 210 ‘TO’ 50 160 ‘PD’ 40 170 ‘BO’ 60 160 DF.applymap(F1) Index columns def F1(X): Y=...X…. return Y V1 V2 PROV ‘RM’ F1(30) F1(120) ‘MI’ F1(70) F1(210) ‘TO’ F1(50) F1(160) ‘PD’ F1(40) F1(170) ‘BO’ F1(60) F1(160) Data una funzione
  • 12. DataFrame: metodo apply Dato un DataFrame, il metodo .apply esegue una trasformazione di sottoparti di un dataframe, rappresentate: dalle colonne dalle righe da gruppi opzione axis=0 opzione axis=1 ottenuto con .groupby La trasformazione può essere definita tramite: a) una funzione built-in; b) una funzione anonima; c) una funzione custom
  • 13. DataFrame: metodo apply - esempi DF = V1 V2 PROV ‘RM’ 30 120 ‘MI’ 70 210 ‘TO’ 50 160 ‘MI’ 40 170 ‘TO’ 60 160 DF.apply(lambda x: x. mean(), axis=1) ‘RM’ 75 ‘MI’ 140 ‘TO’ 105 ‘MI’ 105 ‘TO’ 110 DF.apply(lambda x: x. mean(), axis=0) V1 V2 50 62 DF.groupby(level=’PROV’) .apply(lambda x: x. mean()) V1 V2 PROV ‘RM’ 30 120 ‘MI’ 55 185 ‘TO’ 55 160
  • 15. CONTATTI TELEFONO 051 22 35 20 EMAIL WORKSHOP@VICEM.IT