Python Pandas - Statistiche descrittive
Un gran numero di metodi calcola collettivamente statistiche descrittive e altre operazioni correlate su DataFrame. La maggior parte di queste sono aggregazioni comesum(), mean(), ma alcuni di loro, come sumsum(), producono un oggetto della stessa dimensione. In generale, questi metodi richiedono un'estensioneaxisargomento, proprio come ndarray. {sum, std, ...}, ma l'asse può essere specificato per nome o numero intero
DataFrame - "indice" (asse = 0, predefinito), "colonne" (asse = 1)
Creiamo un DataFrame e usiamo questo oggetto in questo capitolo per tutte le operazioni.
Esempio
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df
Suo output è il seguente -
Age Name Rating
0 25 Tom 4.23
1 26 James 3.24
2 25 Ricky 3.98
3 23 Vin 2.56
4 30 Steve 3.20
5 29 Smith 4.60
6 23 Jack 3.80
7 34 Lee 3.78
8 40 David 2.98
9 30 Gasper 4.80
10 51 Betina 4.10
11 46 Andres 3.65
somma()
Restituisce la somma dei valori per l'asse richiesto. Per impostazione predefinita, l'asse è indice (asse = 0).
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df.sum()
Suo output è il seguente -
Age 382
Name TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating 44.92
dtype: object
Ogni singola colonna viene aggiunta individualmente (le stringhe vengono aggiunte).
asse = 1
Questa sintassi darà l'output come mostrato di seguito.
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df.sum(1)
Suo output è il seguente -
0 29.23
1 29.24
2 28.98
3 25.56
4 33.20
5 33.60
6 26.80
7 37.78
8 42.98
9 34.80
10 55.10
11 49.65
dtype: float64
significare()
Restituisce il valore medio
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df.mean()
Suo output è il seguente -
Age 31.833333
Rating 3.743333
dtype: float64
std ()
Restituisce la deviazione standard di Bressel delle colonne numeriche.
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df.std()
Suo output è il seguente -
Age 9.232682
Rating 0.661628
dtype: float64
Funzioni e descrizione
Vediamo ora di comprendere le funzioni in Statistiche descrittive in Python Pandas. La tabella seguente elenca le funzioni importanti:
Sr.No. | Funzione | Descrizione |
---|---|---|
1 | contare() | Numero di osservazioni non nulle |
2 | somma() | Somma di valori |
3 | significare() | Media dei valori |
4 | mediano() | Mediana dei valori |
5 | modalità() | Modalità di valori |
6 | std () | Deviazione standard dei valori |
7 | min () | Valore minimo |
8 | max () | Valore massimo |
9 | addominali() | Valore assoluto |
10 | prod () | Prodotto di valori |
11 | cumsum () | Somma cumulativa |
12 | cumprod () | Prodotto cumulativo |
Note- Poiché DataFrame è una struttura dati eterogenea. Le operazioni generiche non funzionano con tutte le funzioni.
Funziona come sum(), cumsum()lavorare con elementi di dati sia numerici che di tipo stringa (o) senza errori. Anche sen pratica, le aggregazioni di caratteri non sono mai usate generalmente, queste funzioni non generano alcuna eccezione.
Funziona come abs(), cumprod() genera un'eccezione quando DataFrame contiene dati di caratteri o stringhe perché tali operazioni non possono essere eseguite.
Riassumendo i dati
Il describe() funzione calcola un riepilogo delle statistiche relative alle colonne DataFrame.
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df.describe()
Suo output è il seguente -
Age Rating
count 12.000000 12.000000
mean 31.833333 3.743333
std 9.232682 0.661628
min 23.000000 2.560000
25% 25.000000 3.230000
50% 29.500000 3.790000
75% 35.500000 4.132500
max 51.000000 4.800000
Questa funzione fornisce l'estensione mean, std e IQRvalori. Inoltre, la funzione esclude le colonne dei caratteri e il riepilogo fornito sulle colonne numeriche.'include'è l'argomento che viene utilizzato per passare le informazioni necessarie su quali colonne devono essere considerate per il riepilogo. Prende l'elenco dei valori; per impostazione predefinita, "numero".
- object - Riassume le colonne delle stringhe
- number - Riassume le colonne numeriche
- all - Riepiloga tutte le colonne insieme (non dovrebbe passarlo come valore di elenco)
Ora, usa la seguente dichiarazione nel programma e controlla l'output:
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df.describe(include=['object'])
Suo output è il seguente -
Name
count 12
unique 12
top Ricky
freq 1
Ora, usa la seguente dichiarazione e controlla l'output:
import pandas as pd
import numpy as np
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
'Lee','David','Gasper','Betina','Andres']),
'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
#Create a DataFrame
df = pd.DataFrame(d)
print df. describe(include='all')
Suo output è il seguente -
Age Name Rating
count 12.000000 12 12.000000
unique NaN 12 NaN
top NaN Ricky NaN
freq NaN 1 NaN
mean 31.833333 NaN 3.743333
std 9.232682 NaN 0.661628
min 23.000000 NaN 2.560000
25% 25.000000 NaN 3.230000
50% 29.500000 NaN 3.790000
75% 35.500000 NaN 4.132500
max 51.000000 NaN 4.800000