English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Statistica descrittiva di Pandas

Esempio di operazioni statistica descrittiva di Pandas

Il DataFrame viene utilizzato per un gran numero di calcoli di informazione statistica descrittiva e altre operazioni correlate. La maggior parte di queste è aggregativa, ad esempio sum(), mean(), ma alcune aggregazioni (ad esempio sumsum()) producono oggetti di dimensioni identiche. In generale, questi metodi utilizzano il parametro asse, come ndarray. {sum, std, ...} ma possono essere specificati per nome o come intero DataFrame − Indice (asse=0, predefinito), Colonna (asse=1)

Creiamo un DataFrame e utilizziamo questo oggetto per tutte le operazioni di questa sezione.

Esempio

 import pandas as pd
 import numpy as np
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df)

Risultato dell'esecuzione:

        Età  Nome   Valutazione
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

sum()

Restituisce la somma dei valori dell'asse richiesto. Per impostazione predefinita, l'asse è l'indice (asse=0)

 import pandas as pd
 import numpy as np
  
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df.sum())

Risultato dell'esecuzione:

    Età                                                    382
Nome TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Valutazione 44.92
dtype: object

Ogni colonna singola aggiunge una stringa

axis=1

Questa sintassi genererà il seguente contenuto.

 import pandas as pd
 import numpy as np
  
 # Creare un dizionario di 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])
 }
  
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df.sum(1))

Risultato dell'esecuzione:

    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

mean()

Restituisce la media.

 import pandas as pd
 import numpy as np
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df.mean())

Risultato dell'esecuzione:

    Età 31.833333
Valutazione 3.743333
dtype: float64

std()

Restituisce la deviazione standard Bressel delle colonne numeriche.

 import pandas as pd
 import numpy as np
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df.std())

Risultato dell'esecuzione:

    Età 9.232682
Valutazione 0.661628
dtype: float64

Funzioni & Descrizione

Ora esaminiamo le funzioni di statistica descrittiva in Python Pandas. La tabella seguente elenca le funzioni importanti:

NumeroMetodoDescrizione
1count()Contatore non vuoto
2sum()Totale
3mean()Media
4median()Mediana
5mode()Modo
6std()Deviazione standard
7min()Minimo
8max()Massimo
9abs()Valore assoluto
10prod()Prodotto
11cumsum()Somma cumulativa
12cumprod()Moltiplicazione cumulativa
Attenzione: − Poiché DataFrame è una struttura dati eterogenea. Le operazioni generiche non si applicano a tutte le funzioni.
    Funzioni come sum() e cumsum() possono essere utilizzate per elementi numerici e caratteri (o) stringhe senza generare alcun errore. Anche se le collection di caratteri non sono utilizzate universalmente, non generano alcuna eccezione.
  • Quando DataFrame contiene dati di carattere o stringa, funzioni come abs() e cumprod() generano eccezioni perché tali operazioni non possono essere eseguite.

Riepilogo dati

  import pandas as pd
 import numpy as np
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df.describe())

Risultato dell'esecuzione:

                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 valori di media, std e IQR. E non include le colonne di caratteri e le摘要 relative alle colonne numeriche fornite. "include" è un parametro necessario per trasmettere le informazioni necessarie sulle colonne da considerare durante la somma. Valori della lista; per impostazione predefinita è "number".

object − Sommare le colonne di stringhenumber − Sommare le colonne numericheall − Sommare tutte le colonne insieme (non dovrebbe essere considerato come valore di lista)

Di seguito, nel nostro programma utilizziamo le seguenti istruzioni e eseguiamo e visualizziamo:

  import pandas as pd
 import numpy as np
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df.describe(include=['object']))

Risultato dell'esecuzione:

           Name
count       12
unique      12
top      Ricky
freq         1

Di seguito, nel nostro programma utilizziamo le seguenti istruzioni e eseguiamo e visualizziamo:

  import pandas as pd
 import numpy as np
 # Creare un dizionario di 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])
 }
 # Creare un DataFrame
 df = pd.DataFrame(d)
 print(df. describe(include='all'))

Risultato dell'esecuzione:

           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