0% ont trouvé ce document utile (0 vote)
16 vues20 pages

Statistiques et Traitement de Données en Python

Transféré par

olivierpirkassou1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues20 pages

Statistiques et Traitement de Données en Python

Transféré par

olivierpirkassou1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Programmation Python pour le Machine Learning

Partie 2: Statistiques descriptives et traitement de données

Pegdwendé Nicolas Sawadogo


[Link]@[Link]

Doctorant, Laboratoire ERIC, Université Lyon 2


Plan

1. Création/chargement de données

2. Descriptions de variables

3. Tableaux croisés

4. Regroupements, tris

5. Tests statistiques

1
Création/chargement de
données
Matrices/vecteurs/dataframes

Principaux types de données utilisés pour les traitements statistiques

• Vecteurs: Utilisés pour représenter des données numériques en 1


dimension (avec Numpy)
• Matrices: Utilisées pour représenter des données numériques en 2
dimensions (avec Numpy)
• Dataframes: Utilisés pour représenter des données de plusieurs types:
numériques, chaînes de caractères, dates, etc. (avec Pandas)

2
Chargement

▶ Vecteurs et Matrices
• Chargement d’un vecteur ou d’une matrice avec Numpy
data = [Link]("[Link]")
• Chargement de plusieurs colonnes dans des vecteurs
c1, c2, c3 = [Link]("[Link]", unpack=True)
▶ Dataframe
• Chargement à partir d’un fichier excel
df = pd.read_excel("[Link]", "feuil1", ...)
• Chargement à partir d’un fichier csv
df = pd.read_csv("[Link]", ";", ...)

3
Création

▶ Vecteurs:
• Valeurs prédéfinies
[Link]([1, 2, 3])
• Création par incrémentation automatique :
[Link](debut, fin, incrementation)
[Link](2, 3, 0.2) #array([ 2., 2.2, 2.4, 2.6, 2.8])
▶ Matrices:
• Valeurs prédéfinies
[Link]([[1, 2, 3], [4, 5, 6]])
• Incrémentation automatique
[Link](12).reshape(3,4)
#array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]])

• A partir d’un dataframe Pandas


df.to_numpy()

4
Descriptions de variables
Descriptions de variables

▶ Moyennes:
• Avec Numpy
[Link](data) #Moyenne de toutes les valeurs
[Link](data, axis=0) #Moyennes en lignes
[Link](data, axis=1) #Moyennes en colonnes
• Avec Pandas
[Link](axis=0) #Moyennes en lignes
[Link](axis=1) #Moyennes en colonnes
• C’est le même principe pour la variance, l’écart type, etc.
▶ Mode:
• Avec Scipy
[Link](matrice) #Mode de toutes les valeurs
[Link](matrice, axis=0) #Mode en lignes
[Link](matrice, axi=1) #Mode en colonnes
• Avec Pandas
[Link](axis=0) #Mode en lignes
[Link](axis=1) #Mode en colonnes
5
Descriptions de variables

• Aperçu des données


[Link]() #Premières lignes
[Link]() #Dernières lignes

• Description gle de toutes les variables


[Link] #Types de données
[Link]() #Distribution des données

• Description de variables quanti


df['var1'].value_counts() #distribution
df['var1'].[Link]() #histogramme

• Description de variables quali


df['var2'].describe() #distribution
df['var2'].value_counts().[Link]() #camembert
6
Tableaux croisés
Tableaux croisés

• Tableaux croisés simples


[Link](df['TABAC'], df['RONFLE'])

• Pourcentages par cellule


[Link](df['TABAC'], df['RONFLE'], normalize=True)

7
Tableaux croisés

• Profils colonnes
[Link](df['TABAC'], df['RONFLE'],
normalize="columns")

• Affichage des marges


[Link](df['TABAC'], df['RONFLE'], margins=True)

8
Regroupements, tris
Regroupements

• Regroupement + aggrégation
[Link]('SEXE')['TAILLE'].mean()

• Regroupement + aggrégations multiples


[Link]('SEXE').agg({'AGE':'max', 'POIDS':'mean',
'TABAC':'count'})

9
Tri et filtrage

• Filtrage
df[df['RONFLE']=='oui']
#Ind. dont la variable RONFLE="oui"

df[(df['RONFLE']=='oui') & (df['POIDS'] < 70)]


#ind. de moins de 70kg qui ronflent
• Tri
df.sort_values(by = ['AGE', 'POIDS'], ascending = True)
#Tri par ordre asc. de l'age, puis du poids

df.sort_values(by = ['AGE', 'POIDS'],


ascending = [True, False], inplace=True)
#Tri par ordre asc. de l'age, puis desc. du poids

10
Modification de colonnes

• Colonne issue d’une autre


[Link](RONFLE2=[Link](0,1))

• Colonne issue de la combinaison d’autres


[Link](IMC=[Link]/([Link]*[Link]/10000))
#Opérations numériques ou de chaînes de caractères

11
Recodage de modalités

• Discrétisation de variable quantitative


df["int_effectif"]=[Link]([Link], 2,
labels=["petit-eff","grand-eff"])
• Renommage de modalités
referentiel = {"Licence 3": "Licence",
"Master 1": "Master",
"Master 2": "Master"}
df["diplome_prepare"] = df["niveau"].map(referentiel)

12
Tests statistiques
Tests statistiques

• Test de normalité: Shapiro-Wilk


from [Link] import shapiro
stat, pvalue = shapiro([Link])
• Test de correlation de rang de Spearson
from [Link] import spearmanr
corr, pvalue = spearmanr([Link], [Link])

• Test du chi deux


from [Link] import chi2_contingency
table = [Link]([Link], [Link])
stat, pvalue, dof, expected = chi2_contingency(table)

• Test de comparaison de moyennes de Student


from [Link] import ttest_ind
...
stat, pvalue = ttest_ind(data1, data2)
13
Quelques ressources

• [Link] ricco/cours/slides/PI%20-
%20statistiques%20avec%[Link]
• [Link]
docs/stable/getting_started/[Link]-structures
• [Link]
• [Link]
• [Link]
python-cheat-sheet/

14

Vous aimerez peut-être aussi