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