Pandas Python - Statistiques descriptives

Un grand nombre de méthodes calculent collectivement des statistiques descriptives et d'autres opérations associées sur DataFrame. La plupart d'entre eux sont des agrégations commesum(), mean(), mais certains d'entre eux, comme sumsum(), produisent un objet de la même taille. De manière générale, ces méthodes prennent unaxisargument, tout comme ndarray. {sum, std, ...}, mais l'axe peut être spécifié par un nom ou un entier

  • DataFrame - «index» (axe = 0, par défaut), «colonnes» (axe = 1)

Créons un DataFrame et utilisons cet objet tout au long de ce chapitre pour toutes les opérations.

Exemple

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

Ses output est comme suit -

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

somme()

Renvoie la somme des valeurs de l'axe demandé. Par défaut, l'axe est index (axe = 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()

Ses output est comme suit -

Age                                                    382
Name     TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating                                               44.92
dtype: object

Chaque colonne individuelle est ajoutée individuellement (les chaînes sont ajoutées).

axe = 1

Cette syntaxe donnera la sortie comme indiqué ci-dessous.

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)

Ses output est comme suit -

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

signifier()

Renvoie la valeur moyenne

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()

Ses output est comme suit -

Age       31.833333
Rating     3.743333
dtype: float64

std ()

Renvoie l'écart type de Bressel des colonnes numériques.

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()

Ses output est comme suit -

Age       9.232682
Rating    0.661628
dtype: float64

Fonctions et description

Voyons maintenant les fonctions sous Statistiques descriptives dans Python Pandas. Le tableau suivant répertorie les fonctions importantes -

N ° Sr. Fonction La description
1 compter() Nombre d'observations non nulles
2 somme() Somme des valeurs
3 signifier() Moyenne des valeurs
4 médian() Médiane des valeurs
5 mode() Mode de valeurs
6 std () Écart type des valeurs
sept min () Valeur minimum
8 max () Valeur maximum
9 abdos() Valeur absolue
dix prod () Produit de valeurs
11 jouir () Somme cumulative
12 cumprod () Produit cumulatif

Note- Puisque DataFrame est une structure de données hétérogène. Les opérations génériques ne fonctionnent pas avec toutes les fonctions.

  • Fonctions comme sum(), cumsum()travailler à la fois avec des éléments de données numériques et des chaînes de caractères (ou) sans aucune erreur. Bien quen pratique, les agrégations de caractères ne sont généralement jamais utilisées, ces fonctions ne lèvent aucune exception.

  • Fonctions comme abs(), cumprod() jette une exception lorsque le DataFrame contient des données de caractère ou de chaîne car de telles opérations ne peuvent pas être effectuées.

Synthèse des données

le describe() La fonction calcule un résumé des statistiques relatives aux colonnes 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()

Ses output est comme suit -

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

Cette fonction donne le mean, std et IQRvaleurs. Et, la fonction exclut les colonnes de caractères et un résumé donné sur les colonnes numériques.'include'est l'argument utilisé pour transmettre les informations nécessaires concernant les colonnes à prendre en compte pour la synthèse. Prend la liste des valeurs; par défaut, «nombre».

  • object - Résume les colonnes String
  • number - Résume les colonnes numériques
  • all - Résume toutes les colonnes ensemble (ne doit pas le passer comme valeur de liste)

Maintenant, utilisez l'instruction suivante dans le programme et vérifiez la sortie -

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'])

Ses output est comme suit -

Name
count       12
unique      12
top      Ricky
freq         1

Maintenant, utilisez l'instruction suivante et vérifiez la sortie -

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')

Ses output est comme suit -

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