Files
training.python.datascience/documentation/old-99-workshop-pandas-shoes.md
Steve Kossouho d06fd5414d Rename documentation files
Removed new- prefix.
Added old- prefix to old files.
2025-07-12 17:03:38 +02:00

3.1 KiB
Raw Permalink Blame History

Exercice de traitement de données avec Pandas

Tiré du site de Guillaume Dueymes : https://www.guillaumedueymes.com/courses/formation_python/8-pandas-exercice/

Nous allons analyser un data set contenant des informations sur 10 000 paires de chaussures vendues sur le site Amazon, avec de nombreuse caractéristiques comme le prix minimal, le prix maximal, les couleurs disponibles, les tailles disponibles, leurs poids, la marque… Le fichier est fourni compressé sous le nom womens-shoes.csv.xz (511 ko compressé, 65,1 Mo décompressé)


Découverte du data set

  1. À laide de la fonction pandas.read_csv(), importez entièrement le data set et enregistrez-le dans une variable shoes.
  2. Utilisez la méthode .head() pour afficher les premières lignes du DataFrame.
  3. Il y a plus de 4 colonnes, beaucoup ne sont pas visibles. Afin de toutes les voir lors de l'affichage, utilisez la fonction pandas.set_option() pour que .head() affiche toutes les colonnes du DataFrame. (consultez la documentation de set_option())
  4. On va garder uniquement les colonnes intéressantes. Grâce à la syntaxe de filtrage par colonnes, créez une variable shoes_light, comprenant uniquement les colonnes suivantes : id, name, dateUpdated, colors, prices.amountMax, prices.amountMin et prices.merchant. Affichez le head() de shoes_light.

Data Cleaning

  1. À l'aide de l'attribut .dtypes du dataframe, regardez attentivement les types de chaque colonne. Certaines ont un type qui n'est pas celui attendu. Lesquelles ?
  2. À l'aide des méthodes .isnull() (ou .isna()), .sum() et len(), calculez pour chaque colonne le pourcentage de valeurs non renseignées. Notez quelque part celles qui ont un non remplissage supérieur à 10%.
  3. Supprimez du dataframe shoes_light les colonnes que vous avez notées dans la question précédente, elles ont trop de valeurs non renseignées.
  4. À l'aide de la méthode .to_datetime() du dataframe, convertissez le type de la colonne dateUpdated.

Features Modeling

  1. Ajoutez au dataframe une nouvelle colonne prices.amountAverage calculant la moyenne des colonnes prices.amountMax et prices.amountMin (via une addition et une division par 2).
  2. Grâce à l'attribut Series.dt.weekday, ajoutez au dataframe une nouvelle colonne dayOfweekUpdated, extrayant depuis la colonne dateUpdated le jour de la semaine où les produits sont mis à jour (un nombre entre 0 et 6).

Data Analyse

  1. Affichez le prix moyen, écart type, etc. des chaussures avec la méthode .describe().
  2. Y a-t-il de grandes différences de prix en fonction de la marque ? À l'aide des méthodes groupby(), mean() et sort_values(), créez une variable luxury contenant les 10 marques les plus chères, puis une variable low_cost contenant les 10 marques les moins chères.
  3. Grâce à la méthode value_counts(), déterminez le jour de la semaine où les produits sont le plus souvent mis à jour.
  4. (Optionnel) Donnez le prix moyen des produits de la marque easy street mis à jour un jeudi (jour 3).