La taille d’une personne, exprimée en centimètres (par exemple : 175 cm).
C’est une donnée quantitative car elle est mesurable numériquement et permet de faire des opérations mathématiques comme la moyenne, l’écart-type, etc.
Types
Peut prendre uniquement des valeurs entières (souvent issues d’un comptage).
Exemple :
Nombre d’enfants, nombre de voitures, nombre de messages reçus
Peut prendre toutes les valeurs possibles dans un intervalle (même des décimales)
Exemple :
Taille (ex : 175,2 cm), poids (ex : 68,5 kg), température
Une donnée qualitative est une information qui décrit une qualité, une caractéristique ou une catégorie. Elle ne peut pas être mesurée numériquement, mais elle permet de classer ou nommer des éléments.
Exemples :
Nationalité : suisse, française, italienne…
Genre : homme, femme…
Musique préférée : jazz, rock, classique…
État civil : célibataire, marié, divorcé
Donnée qualitative sans ordre particulier entre les valeursCouleur des yeux : bleu, vert, marron
Genre : homme, femme
Nationalité : suisse, italienne, française
On ne peut pas classer ou hiérarchiser les valeurs
Donnée qualitative avec un ordre logique entre les valeurs
Niveau d’étude : primaire, secondaire, universitaire
Niveau de satisfaction : faible, moyen, élevé
Taille de t-shirt : S, M, L, XL
On peut classer les valeurs selon un ordre
But : Résumer et décrire les données observées.
Outils : Moyenne, médiane, écart-type, tableaux, graphiques (histogramme, diagramme circulaire…)
Exemple : Moyenne d’âge des étudiants d’une classe, répartition par genre.
But : Découvrir des tendances, structures ou relations cachées dans les données, sans hypothèse préalable.
Outils : Visualisations, corrélations, matrices de dispersion, ACP (analyse en composantes principales), regroupements (clusters).
Exemple : Explorer un grand jeu de données pour identifier des profils types de consommateurs.
But : Faire des prédictions ou des généralisations à partir d’un échantillon vers une population.
Outils : Tests d’hypothèse (t-test, chi², ANOVA), intervalles de confiance, régressions.
Exemple : Estimer la proportion de personnes favorables à une réforme dans une population, à partir d’un sondage.
But : Prévoir des résultats futurs en se basant sur des données passées.
Outils : Régressions, arbres de décision, modèles de machine learning (réseaux de neurones, forêts aléatoires…)
Exemple : Prédire le chiffre d’affaires d’un magasin pour le mois prochain.
But : Recommander des actions en se basant sur des prédictions et des simulations.
Outils : Optimisation, scénarios, algorithmes de décision.
Exemple : Proposer le meilleur itinéraire de livraison en fonction du trafic et des coûts.
L’analyse descriptive consiste à résumer et présenter les données de manière simple et claire, sans en tirer de conclusions. Elle permet de comprendre les grandes tendances d’un ensemble de données.
Moyenne, médiane, mode
Pourcentages
Tableaux, graphiques (camembert, histogramme…)
Calculer l’âge moyen des élèves d’une classe
Afficher la répartition des réponses à un sondage
L’analyse inférentielle permet de tirer des conclusions ou de faire des généralisations sur une population à partir d’un échantillon de données.
L’analyse prédictive utilise les données passées pour prévoir des événements futurs ou des tendances.
L’analyse prescriptive recommande les meilleures actions à entreprendre pour atteindre un objectif, souvent en optimisant des processus ou des ressources.
Voici les règles principales à suivre pour réaliser un bon sondage et traiter les données avec des outils statistiques :
Pourquoi faire ce sondage ?
Quel type d’information ou de décision souhaitez-vous obtenir ?
Méthode d’échantillonnage : Utilisez des méthodes d’échantillonnage appropriées (échantillonnage aléatoire, stratifié, etc.) pour éviter les biais.
L’échantillon doit être suffisamment grand pour avoir une bonne représentativité de la population cible.
Éviter les ambiguïtés : Les questions doivent être simples et compréhensibles par tous les répondants.
Questions fermées vs questions ouvertes : Choisissez selon le type de données que vous souhaitez recueillir (quantitatives ou qualitatives).
Les participants doivent savoir comment leurs réponses seront utilisées.
Il est crucial de protéger les données personnelles des répondants.
Réalisez un test pilote sur un petit échantillon pour vérifier la clarté des questions et identifier d’éventuelles erreurs ou biais.
Les données doivent être fiables : assurez-vous que les répondants comprennent les questions de manière similaire et qu’il n’y ait pas de confusion.
Évitez les biais : comme les biais de sélection ou de réponse.
Uniformité dans la manière de collecter les données (en ligne, téléphone, face-à-face, etc.) pour éviter de fausser les résultats.
Nettoyage des données : Vérifiez les erreurs et anomalies (données manquantes, incohérences).
Choisissez les outils statistiques adaptés selon les objectifs du sondage :
Moyennes, médianes, modes pour des analyses descriptives
Tests d’hypothèses pour des analyses inférentielles
Modèles prédictifs si vous souhaitez faire des prédictions basées sur les résultats.
Évitez de généraliser au-delà de la population cible.
Prenez en compte les limites méthodologiques de votre sondage, telles que la taille de l’échantillon ou les biais potentiels.
Utilisez des graphismes et des tableaux pour rendre les résultats facilement accessibles et compréhensibles par tous, même ceux sans expertise statistique.
1. Transparence de l’information : Clarifiez l’objectif de l’étude et l’utilisation des données de manière explicite. Mettez en place des politiques de confidentialité transparentes et obtenez le consentement des participants, assurant ainsi une communication ouverte et honnête.
2. Anonymat dans la collecte : Préservez la confidentialité en utilisant des méthodes de collecte anonymes. Encouragez l’anonymat, en particulier pour des sujets délicats, et ajustez les mesures de protection en fonction du degré de sensibilité des informations collectées.
3. Protection des données : Formez le personnel sur les bonnes pratiques de gestion des données. Établissez des contrôles d’accès stricts pour garantir la sécurité des informations. Développez un plan solide pour l’élimination ou la conservation sécurisée des données, renforçant ainsi la protection des données sensibles.
4. Respect des réglementations : Intégrez dès la conception des questionnaires les normes de protection des données. Restez informé des évolutions légales, en particulier en ce qui concerne les réglementations en vigueur, pour assurer une conformité continue.
5. Usage de panels préétablis : Simplifiez le processus d’étude en privilégiant l’utilisation de panels existants. Optez pour des panels gérés activement afin de garantir la qualité des résultats. Cultivez la confiance des participants pour établir des partenariats durables.
(Elles nécessitent des données, souvent issues d'un échantillon ou d'une population, pour y répondre)
(Elles concernent des faits uniques ou des opinions, pas besoin de recueillir des données)
Pour des données faciles à recueillir et à analyser, privilégiez les questions fermées. En effet, elles produisent des données quantitatives qui peuvent servir à mesurer des variables.
En règle générale, essayez de vous limiter à deux questions ouvertes par sondage ou enquête. Si possible, placez-les à la fin du sondage.
Adoptez un ton objectif en vous abstenant d’exprimer votre opinion. Pour cet exemple, formulez votre question ainsi.
es participants doivent avoir l’opportunité de proposer des réponses honnêtes et réfléchies, seul gage de crédibilité de votre sondage.
Ne pas poser une question double, c’est-à-dire une question à deux volets, qui demande aux participants d’évaluer deux choses différentes en même temps.
Répondre cinquante fois à la même question finirait probablement par agacer.
Parfois, les participants ne connaissent pas les réponses à vos questions. Peut-être sont-ils gênés par certaines d’entre elles et ne souhaitent pas y répondre. Pourtant, vous avez besoin de leur feedback.
Partagez votre sondage avec vos collègues ou votre entourage avant de l’envoyer à votre population cible. Il suffit parfois d’un regard neuf ou d’un avis objectif pour repérer des erreurs.
Titre : Créer et réaliser un sondage sur les habitudes de vie des jeunes de ton entourage (classe, club, voisinage, etc.).
Concevez un sondage dans le but de recueillir des données statistiques sur un sujet de ton choix lié aux habitudes de vie des jeunes (exemples : sommeil, alimentation, sport, écrans, transport, loisirs…).
Ensuite vous expliquerez les choix faits, réaliser le sondage, et analyser les données collectées.
1. Définissez l’objectif de votre sondage
Expliquez en quelques lignes ce que vous souhaitez étudier, pourquoi ce sujet vous intéresse, et ce que vous aimeriez apprendre grâce au sondage.
2. Rédige un questionnaire comportant entre 6 et 10 questions
Les questions doivent porter sur ton thème et doivent inclure différents types de données :
Pour chaque question :
3. Réalisez votre sondage
Distribuez votre questionnaire à un minimum de 10 personnes. Vous pouvez le faire sous forme papier, oralement, ou en ligne.
4. Analyse les résultats
Présente un tableau de données (réponses recueillies)
Réalise au moins deux représentations graphiques (diagramme en bâtons, camembert, histogramme, etc.)
Commente ce que tu observes. Y a-t-il des tendances ? Des surprises ?
5. Conclusion
Explique ce que tu as appris grâce à ton sondage, ce que tu pourrais améliorer, et ce que tu referais différemment dans une prochaine étude.
Un document ou diaporama contenant :
Afin d'avoir un niveau suffisant avec Excel, mais aussi les autres produits tels que Tableau ou Power BI il faudrait connaître les 4 points suivants suivants :
Savez-vous :
Si non une petite mise à niveau s'impose
Incrémenter les valeurs - Télécharger
Référencer des cellules et des plages - Télécharger
Calculs simples - Télécharger
Calculs sur des ensembles - Télécharger
Exercices sur les fonctions de base : Télécharger (SOMME/MOYENNE/SI/NB)
Créer des tableaux de données no tableau - Télécharger
Créer des tableaux de données // Médailles - Télécharger
Raccourci | Définition |
Tab | passer à la cellule suivante (à droite) |
Shift+Tab | passer à la cellule précédente (à gauche) |
Ctrl+Flèche | atteindre l’extrémité d’un tableau de données (ou de la feuille) |
Shift+Flèche | sélectionner les données des cellules adjacentes |
Ctrl+Shift+Flèche | sélectionner un tableau de données facilement sur Excel |
Ctrl+A | sélectionner tout un tableau sur Excel |
Touche Suppr | effacer le contenu d’une cellule Excel |
Ctrl+Molette | zoomer ou dézoomer sur Excel |
Ctrl+O | ouvrir une feuille de calcul |
Ctrl+W | fermer une feuille de calcul |
Ctrl+S | sauvegarder un fichier Excel |
Ctrl+F | rechercher et remplacer une valeur sur Excel |
Ctrl+N | créer un nouveau classeur |
Ctrl+Z | annuler la dernière action |
Ctrl+Y | effectuer une action précédemment annulée |
Télécharger le fichier d'exercices et ressortir les informations suivantes
1. Modifiez les données initiales afin de pouvoir les transformer en tableau
2. Modifiez le nom du tableau en "gender data" (pas d'accents)
3. Le football apparait 2 fois, supprimez les doublons
4. Ajoutez la ligne de total et faites la somme de chaque colonne
5. Créez une nouvelle colonne calculant le pourcentage de femmes pour chaque sport
6. Dans la cellule "maximum d'athlètes", calculez le nombre maximum d'athlètes pour un sport
=nbval()
=nb()
=nb.vide()
=nb.si(;">100")
=nb.si.ens()
=min()
=max()
=min.si.ens()
=moyenne.si.ens()
=mediane()
=mode()
=ecartype.standard()
Retirez les colonnes qui ne sont pas utiles pour l’analyse.
Plusieurs options s’offrent à vous :
5. Uniformiser les formats de données
Dates : assurez-vous qu’elles sont toutes au même format (YYYY-MM-DD par exemple).
Nombres : remplacez les virgules par des points si nécessaire (1,5 → 1.5).
Texte : appliquez une casse cohérente (tout en minuscules, par exemple).
Transformez les réponses textuelles en codes numériques pour l’analyse :
Notez toutes les transformations apportées au fichier :
Cela vous permettra de reproduire ou justifier vos choix plus tard.
import pandas as pd
import numpy as np
# 1. Charger le fichier Excel
df = pd.read_excel("donnees_avec_legers_problemes.xlsx")
# 2. Vérifier et convertir les types de données
df['age'] = pd.to_numeric(df['age'], errors='coerce')
df['revenu_mensuel'] = pd.to_numeric(df['revenu_mensuel'], errors='coerce')
df['date_naissance'] = pd.to_datetime(df['date_naissance'], errors='coerce')
# 3. Nettoyer les valeurs aberrantes
# Supprimer ou corriger les âges aberrants
df.loc[(df['age'] < 0) | (df['age'] > 100), 'age'] = np.nan
# Supprimer les revenus excessifs (>20 000€)
df.loc[df['revenu_mensuel'] > 20000, 'revenu_mensuel'] = np.nan
# Supprimer les dates de naissance irréalistes
df.loc[(df['date_naissance'].dt.year < 1900) | (df['date_naissance'].dt.year > 2024), 'date_naissance'] = pd.NaT
# 4. Gérer les valeurs manquantes
# Imputation simple : moyenne pour âge et revenu
df['age'].fillna(df['age'].mean(), inplace=True)
df['revenu_mensuel'].fillna(df['revenu_mensuel'].mean(), inplace=True)
# Suppression des lignes sans date de naissance
df = df.dropna(subset=['date_naissance'])
# 5. Vérification du genre (doit être "Homme" ou "Femme")
df['genre'] = df['genre'].where(df['genre'].isin(['Homme', 'Femme']))
# 6. Exporter le fichier nettoyé
df.to_excel("donnees_nettoyees.xlsx", index=False)
print("✅ Données nettoyées enregistrées dans 'donnees_nettoyees.xlsx'")
#Déclaration de variables
nom = "Alice"
age = 25
taille = 1.68 # en mètres
est_majeur = True
#Conversion d'entiers et de chaînes
age_str = str(age) # Convertit l'entier 25 en "25"
taille_int = int(taille) # Convertit 1.68 en 1 (arrondi vers le bas)
#Conversion d'une chaîne en nombre
nombre_str = "42"
nombre_int = int(nombre_str) # Résultat : 42
#Conversion en float
valeur_str = "3.14"
valeur_float = float(valeur_str) # Résultat : 3.14
a = 10
b = 3
somme = a + b # Addition => 13
difference = a - b # Soustraction => 7
produit = a * b # Multiplication => 30
quotient = a / b # Division réelle => 3.333...
division_entiere = a // b # Division entière => 3
reste = a % b # Modulo => 1
puissance = a ** b # Puissance => 1000
print("Nom :", nom)
print("Somme :", somme)
print("Division entière :", division_entiere)
# Liste de nombres
nombres = [1, 2, 3, 4, 5]
# Liste de chaînes
prenoms = ["Alice", "Bob", "Charlie"]
# Liste mixte
melange = [42, "Bonjour", 3.14, True]
Accéder aux éléments
print(prenoms[0]) # Affiche "Alice" (premier élément)Accéder aux données
print(prenoms[-1]) # Affiche "Charlie" (dernier élément)
prenoms.append("David") # Ajoute à la fin
prenoms.insert(1, "Emma") # Insère à l'indice 1
prenoms[0] = "Alicia" # Modifie le premier élément
prenoms.remove("Charlie") # Supprime l’élément "Charlie"
dernier = prenoms.pop() # Retire et retourne le dernier élément
for nom in prenoms:
print("Bonjour", nom)
# Ou avec les indices
for i in range(len(prenoms)):
print(f"{i} => {prenoms[i]}")
# Quelques fonctions
notes = [12, 15, 9, 18, 14]
print("Note max :", max(notes))
print("Note min :", min(notes))
print("Moyenne :", sum(notes) / len(notes))
notes_triees = sorted(notes) # Trie sans modifier la liste
notes.reverse() # Inverse la liste
doubles = [x * 2 for x in notes]
# Garder uniquement les notes >= 10
reussites = [x for x in notes if x >= 10]
# Afficher les réussites
print("Les notes réussies sont :")
for note in reussites:
print(note)
#Des fonctions supplémentaires
notes = [12, 15, 9, 18, 14, 7, 10]
# Filtrer les réussites
reussites = [note for note in notes if note >= 10]
# Compter les réussites
nb_reussites = len(reussites)
nb_total = len(notes)
# Calculer le pourcentage
pourcentage = (nb_reussites / nb_total) * 100
# Affichage
print("Notes réussies :", reussites)
print("Nombre de réussites :", nb_reussites)
print("Nombre total de notes :", nb_total)
print(f"Pourcentage de réussite : {pourcentage:.2f}%")
note = 14
if note >= 10:
print("Bravo, vous avez réussi !")
else:
print("Dommage, vous avez échoué.")
note = 18
if note >= 16:
print("Très bien !")
elif note >= 10:
print("C'est réussi.")
else:
print("Échec.")
age = 16
autorisation_parentale = True
if age >= 18 or autorisation_parentale:
print("Accès autorisé.")
else:
print("Accès refusé.")
villes = ['Paris', 'Vienne', 'Genève', 'Lyon']
for ville in villes :
print ville
Exemple
fruits = ['citron', 'banane', 'pomme', 'poire', 'banane', 'pomme', 'pomme', 'poire', 'banane', 'banane']
fruits_stock = {}
for fruit in fruits :
if fruit in fruits_stock :
fruits_stock[fruit] +=1
else :
fruits_stock = 1
print(fruits_stock)
prenoms = ["Alice", "Bob", "Charlie"]
for nom in prenoms:
print("Bonjour", nom)
for i in range(5):
print("Ceci est la ligne numéro", i)
personne = {
"nom": "Alice",
"age": 30,
"ville": "Paris"
}
print(personne["nom"]) # Affiche "Alice"
print(personne["ville"]) # Affiche "Paris"
personne["email"] = "alice@example.com" # Ajout
personne["age"] = 31 # Modification
del personne["ville"]
for cle, valeur in personne.items():
print(cle, ":", valeur)
for cle in personne:
print(cle) # Noms des clés
for valeur in personne.values():
print(valeur)
notes = {
"Alice": 15,
"Bob": 12,
"Charlie": 9
}
for eleve, note in notes.items():
if note >= 10:
print(f"{eleve} a réussi avec {note}/20.")
else:
print(f"{eleve} a échoué avec {note}/20.")
# NumPy
(Numerical Python) est une bibliothèque utilisée pour :
# Manipuler des tableaux/matrices de données (appelés ndarray
)
# Faire des opérations mathématiques rapides
# Travailler efficacement avec des grandes quantités de données numériques
import numpy as np
# Créer un tableau numpy
a = np.array([1, 2, 3, 4, 5])
# Quelques opérations
print("Tableau :", a)
print("Somme :", np.sum(a))
print("Moyenne :", np.mean(a))
print("Max :", np.max(a))
import numpy as np
liste = [1, 2, 3]
tableau = np.array(liste)
# Multiplie chaque élément par 2
print(liste * 2) # => [1, 2, 3, 1, 2, 3] (concatène)
print(tableau * 2) # => [2 4 6] (multiplie)
import numpy as np
# Création d'un tableau 1D
mon_tableau = np.array([10, 20, 30, 40, 50])
# Afficher le tableau
print("Tableau :", mon_tableau)
# Afficher le type de données de chaque élément
print("Type des éléments :", mon_tableau.dtype)
# Afficher le type Python de l'objet (structure)
print("Type du tableau :", type(mon_tableau))
import numpy as np
# Création d'un tableau 2D
mon_tableau_2d = np.array([[10, 20, 30], [40, 50, 60]])
# Afficher le tableau 2D
print("Tableau 2D :\n", mon_tableau_2d)
# Afficher le type de données des éléments
print("\nType des éléments :", mon_tableau_2d.dtype)
# Afficher le type Python de l'objet (structure)
print("\nType du tableau :", type(mon_tableau_2d))
print(matrice.shape)
import numpy as np
# Lire un fichier CSV avec numpy
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding=None, skip_header=1)
# Afficher le tableau chargé
print(tableau)
# Afficher le type du tableau
print(type(tableau))
fichier.dtype
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Afficher le tableau chargé
print(tableau)
# Afficher le type du tableau
print(type(tableau))
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Extraire la 2ème ligne (index 1)
deuxieme_ligne = tableau[1]
# Afficher la 2ème ligne
print("Deuxième ligne :", deuxieme_ligne)
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Extraire la valeur de la 2ème ligne et 3ème colonne (index 1, 2)
valeur = tableau[1, 2]
# Afficher la valeur extraite
print("Valeur extraite :", valeur)
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Sélectionner la 2ème colonne (index 1)
colonne_2 = tableau[:, 1]
# Afficher la colonne sélectionnée
print("2ème colonne :", colonne_2)
# Sélectionner plusieurs colonnes :
tableau[:, [0, 1]]
.
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Sélectionner la 2ème ligne (index 1)
ligne_2 = tableau[1]
# Afficher la ligne sélectionnée
print("2ème ligne :", ligne_2)
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Sélectionner les 1ère et 2ème lignes (index 0 et 1)
# Sélectionner les 2ème et 3ème colonnes (index 1 et 2)
selection = tableau[0:2, 1:3]
# Afficher la sélection
print("Sélection des lignes et colonnes spécifiques :\n", selection)
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Filtrer les lignes où l'âge (2ème colonne) est supérieur à 30
filtre = tableau[tableau[:, 1] > 30]
# Afficher le tableau filtré
print("Tableau filtré :\n", filtre)
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Filtrer les lignes où l'âge est supérieur à 25 et la ville est "Paris"
filtre = tableau[(tableau[:, 1] > 25) & (tableau[:, 2] == 'Paris')]
# Afficher le tableau filtré
print("Tableau filtré sur 2 critères :\n", filtre)
fivhier2= fichier.copy()
import numpy as np
# Lire le fichier CSV avec l'encodage UTF-8
fichier = 'fichier.csv'
tableau = np.genfromtxt(fichier, delimiter=',', dtype=None, encoding='utf-8', skip_header=1)
# Remplacer les âges supérieurs à 30 par 30
tableau[tableau[:, 1] > 30, 1] = 30
# Afficher le tableau modifié
print("Tableau après remplacement :\n", tableau)
import pandas as pd
# Charger le fichier CSV
df = pd.read_csv('musiciens_exemple.csv')
# Afficher les 10 premières lignes
print(df.head(10))
df = df.rename(columns={'Email contact': 'Email'})
# Afficher le résultat
df.head()
df.loc[df["Artiste"] == "Lance Green", "Nombre de ventes"] = 9999999
df.head()
import pandas as pd
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Calculer le total des ventes
total_ventes = df["Nombre de ventes"].sum()
# Calculer la moyenne des ventes
moyenne_ventes = df["Nombre de ventes"].mean()
# Afficher les résultats
print("Total des ventes :", total_ventes)
print("Moyenne des ventes :", moyenne_ventes)
import pandas as pd
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Calculer le total des ventes pour le genre "Pop"
ventes_pop = df[df["Genre"] == "Pop"]["Nombre de ventes"].sum()
# Afficher le total
print("Total des ventes (Pop) :", ventes_pop)
import pandas as pd
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Calculer le total des ventes
total_ventes = df["Nombre de ventes"].sum()
# Afficher le total
print("Total des ventes :", total_ventes)
import pandas as pd
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Trier par nombre de ventes décroissant
df = df.sort_values(by="Nombre de ventes", ascending=False)
# Afficher les premières lignes du résultat trié
df.head()
import pandas as pd
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Convertir la colonne Date de sortie en datetime
df["Date de sortie"] = pd.to_datetime(df["Date de sortie"])
# Grouper par mois (année + mois) et sommer les ventes
ventes_mensuelles = df.groupby(df["Date de sortie"].dt.to_period("M"))["Nombre de ventes"].sum()
# Optionnel : convertir l'index en datetime pour affichage clair
ventes_mensuelles = ventes_mensuelles.to_timestamp()
# Afficher le tableau
print(ventes_mensuelles)
ventes_mensuelles_triees = ventes_mensuelles.sort_values(ascending=False)
# Afficher le tableau trié
print(ventes_mensuelles_triees)
ventes_mensuelles_triees.to_csv("ventes_mensuelles_tries.csv")
import pandas as pd
import matplotlib.pyplot as plt
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Convertir la colonne Date de sortie en datetime
df["Date de sortie"] = pd.to_datetime(df["Date de sortie"])
# Grouper par mois et sommer les ventes
ventes_mensuelles = df.groupby(df["Date de sortie"].dt.to_period("M"))["Nombre de ventes"].sum()
# Convertir l'index en datetime
ventes_mensuelles = ventes_mensuelles.to_timestamp()
# Tracer le graphique
plt.figure(figsize=(12, 6))
plt.bar(ventes_mensuelles.index.strftime("%Y-%m"), ventes_mensuelles.values)
plt.xticks(rotation=45, ha="right")
plt.title("Ventes mensuelles totales (triées par volume)")
plt.xlabel("Mois de sortie")
plt.ylabel("Nombre de ventes")
plt.tight_layout()
plt.grid(True)
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Convertir la colonne Date de sortie en datetime
df["Date de sortie"] = pd.to_datetime(df["Date de sortie"])
# Grouper les ventes par mois
ventes_mensuelles = df.groupby(df["Date de sortie"].dt.to_period("M"))["Nombre de ventes"].sum()
# Convertir l'index en datetime
ventes_mensuelles = ventes_mensuelles.to_timestamp()
# Trier par volume de ventes décroissant
ventes_mensuelles_triees = ventes_mensuelles.sort_values(ascending=False)
# Tracer le graphique avec les valeurs
plt.figure(figsize=(12, 6))
bars = plt.bar(ventes_mensuelles_triees.index.strftime("%Y-%m"), ventes_mensuelles_triees.values)
# Ajouter les valeurs au-dessus des barres
for bar in bars:
height = bar.get_height()
plt.annotate(f'{height:,}', # Ajoute des séparateurs de milliers
xy=(bar.get_x() + bar.get_width() / 2, height),
xytext=(0, 3),
textcoords="offset points",
ha='center', va='bottom', fontsize=8)
plt.xticks(rotation=45, ha="right")
plt.title("Ventes mensuelles totales (triées par volume)")
plt.xlabel("Mois de sortie")
plt.ylabel("Nombre de ventes")
plt.tight_layout()
plt.grid(True)
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
# Charger le fichier CSV
df = pd.read_csv("musiciens_exemple.csv")
# Convertir la colonne Date de sortie en datetime
df["Date de sortie"] = pd.to_datetime(df["Date de sortie"])
# Filtrer les données à partir de 2020
df_filtre = df[df["Date de sortie"] >= "2020-01-01"]
# Grouper les ventes par mois
ventes_mensuelles = df_filtre.groupby(df_filtre["Date de sortie"].dt.to_period("M"))["Nombre de ventes"].sum()
# Convertir l'index en datetime
ventes_mensuelles = ventes_mensuelles.to_timestamp()
# Tracer le graphique avec les valeurs
plt.figure(figsize=(12, 6))
bars = plt.bar(ventes_mensuelles.index.strftime("%Y-%m"), ventes_mensuelles.values)
# Ajouter les valeurs au-dessus des barres
for bar in bars:
height = bar.get_height()
plt.annotate(f'{height:,}',
xy=(bar.get_x() + bar.get_width() / 2, height),
xytext=(0, 3),
textcoords="offset points",
ha='center', va='bottom', fontsize=8)
plt.xticks(rotation=45, ha="right")
plt.title("Ventes mensuelles totales depuis 2020 (triées par volume)")
plt.xlabel("Mois de sortie")
plt.ylabel("Nombre de ventes")
plt.tight_layout()
plt.grid(True)
plt.show()
# Filtrer pour l'année 2020 et suivantes, et pour le genre "Pop"
df_filtre = df[(df["Date de sortie"] >= "2020-01-01") & (df["Genre"] == "Pop")]
import pandas as pd
# Charger le fichier Excel
file_path = "spotify.xlsx" # Remplace par le nom exact de ton fichier
xls = pd.ExcelFile(file_path)
# Charger la feuille de données
df = xls.parse('données')
# Charger le fichier CSV
# file_path = "spotify.csv" # Remplace par le nom de ton fichier
# df = pd.read_csv(file_path)
# S'assurer que la colonne 'Positivité' est bien numérique
df['Positivité'] = pd.to_numeric(df['Positivité'], errors='coerce')
# Trouver les chansons avec la positivité maximale
max_positivity = df['Positivité'].max()
most_positive_songs = df[df['Positivité'] == max_positivity]
# Afficher les colonnes pertinentes
print(most_positive_songs[['Chanson', 'Artiste', 'Genre principal', 'Positivité']])
import pandas as pd
# Charger le fichier Excel
file_path = "spotify.xlsx" # Remplace par le nom de ton fichier
xls = pd.ExcelFile(file_path)
# Charger la feuille de données
df = xls.parse('données')
# S'assurer que la colonne 'Positivité' est bien numérique
df['Positivité'] = pd.to_numeric(df['Positivité'], errors='coerce')
# Trier les chansons par positivité décroissante
df_sorted = df.sort_values(by='Positivité', ascending=False)
# Sélectionner les 5 premières
top5_positive_songs = df_sorted[['Chanson', 'Artiste', 'Genre principal', 'Positivité']].head(5)
# Afficher le résultat
print(top5_positive_songs)
top5_positive_songs.to_csv("top5_positives.csv", index=False, encoding='utf-8')
Chanson | Artiste | Genre principal | Positivité |
September | Earth, Wind & Fire | disco | 0.979 |
Running Over (feat. Lil Dicky) | Justin Bieber | canadian pop | 0.977 |
Little Saint Nick - 1991 Remix | The Beach Boys | 0.971 | |
Na Raba Toma Tapao | Niack | funk carioca | 0.968 |
JUMP (feat. YoungBoy Never Broke Again) | DaBaby | north carolina hip hop | 0.966 |
import pandas as pd
file_path = "spotify.xlsx" # Remplacer par le nom exact du fichier
xls = pd.ExcelFile(file_path)
df = xls.parse('données')
# S'assurer que les colonnes sont bien numériques
for col in ['Positivité', 'Dansabilité', 'Energie']:
df[col] = pd.to_numeric(df[col], errors='coerce')
# Supprimer les lignes avec des valeurs manquantes dans ces colonnes
df_clean = df.dropna(subset=['Positivité', 'Dansabilité', 'Energie']).copy()
# Calculer un score moyen des trois critères
df_clean['Score'] = df_clean[['Positivité', 'Dansabilité', 'Energie']].mean(axis=1)
# Trouver la chanson avec le meilleur score
best_song = df_clean.loc[df_clean['Score'].idxmax()]
# Afficher le résultat
print("Chanson avec la meilleure combinaison Positivité + Dansabilité + Énergie :\n")
print(f"Chanson : {best_song['Chanson']}")
print(f"Artiste : {best_song['Artiste']}")
print(f"Genre : {best_song['Genre principal']}")
print(f"Score : {best_song['Score']:.3f}")
Chanson avec la meilleure combinaison Positivité + Dansabilité + Énergie : Chanson : Na Raba Toma Tapão Artiste : Niack Genre : funk carioca Score : 0.906
import pandas as pd
import matplotlib.pyplot as plt
file_path = "spotify.xlsx" #
xls = pd.ExcelFile(file_path)
df = xls.parse('données')
# Trier par nombre d'écoutes et prendre les 10 meilleurs
top_10 = df.sort_values(by='écoutes', ascending=False).head(10)
# Préparer les étiquettes avec chanson + artiste
labels = [f"{row['Chanson']} ({row['Artiste']})" for _, row in top_10.iterrows()]
# Créer le graphique
plt.figure(figsize=(12, 6))
plt.bar(labels, top_10['écoutes'])
plt.xticks(rotation=45, ha='right')
plt.title("Top 10 des chansons par nombre d'écoutes (avec artiste)")
plt.xlabel("Chanson (Artiste)")
plt.ylabel("Écoutes")
plt.tight_layout()
plt.show()