Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Notions intervenant dans ce TP

0. install

  1. installez polars si vous ne l’avez pas encore fait

1. import

  1. importez la librairie polars (sous le nom pl, c’est l’usage)

2. read

  1. lisez le fichier de données data/objects-on-the-moon.csv

  2. affichez sa taille et regardez quelques premières lignes

Loading...
Loading...

3. drop

  1. vous remarquez une première colonne franchement inutile
    (c’est l’index d’une dataframe pandas, sauvée telle quelle avec to_csv)

  2. (optionnel) vérifiez que cette colonne contient bien les entiers 0,1,2,...0, 1, 2, ...

  3. utilisez la méthode drop des dataframes pour supprimer cette colonne de votre dataframe

4. info

  1. il n’y a pas de méthode info en polars;
    regardez le résultat de schema, null_count(), describe() et glimpse()

  2. remarquez une colonne entièrement vide

5. drop empty columns

  1. supprimez de la dataframe les colonnes qui ont toutes leurs valeurs manquantes
    (ici on s’interdit un code qui ferait explicitement référence à la colonne 'Size')

  2. vérifiez que vous avez bien enlevé la colonne 'Size'

6. drop empty rows

  1. affichez la ligne en position 88, que remarquez-vous ?
    (en polars c’est une position, pas un label d’index)

  2. supprimez de la dataframe les lignes qui ont toutes leurs valeurs manquantes
    (et de nouveau sans faire référence à une ligne en particulier)

7. dtypes

  1. utilisez l’attribut dtypes (ou schema) des dataframes pour voir le type de vos colonnes

  2. que remarquez vous sur la colonne des masses ?

8. unique

  1. utilisez la méthode unique des Series pour regarder le contenu de la colonne des masses

  2. que remarquez vous ?

9. cast

  1. conservez la colonne 'Mass (lb)' d’origine
    (par exemple dans une colonne de nom 'Mass (lb) orig')

  2. utilisez la méthode cast des expressions pour convertir la colonne 'Mass (lb)' en flottant
    en remplaçant les valeurs invalides par la valeur manquante (null)

  3. naturellement vous vérifiez votre travail en affichant le type de la série df['Mass (lb)']

  4. combien y a-t-il de données manquantes dans cette colonne ?

10. replace

  1. cette solution ne vous satisfait pas, vous ne voulez perdre aucune valeur
    (même au prix de valeurs approchées)

  2. vous décidez vaillamment de modifier les str en leur enlevant les caractères < et >
    afin de pouvoir en faire des entiers
    remplacez les < et les > par des ‘’ (chaîne vide)
    et rangez le résultat dans une colonne 'Mass (lb) clean'

  3. utilisez cast pour la convertir finalement en entier (pl.Int64)

  4. (optionnel) en pandas il fallait un type spécial (pd.Int64Dtype)
    pour avoir des entiers et des valeurs manquantes;
    essayez de convertir la colonne 'Mass (lb)' de la question 9 en entiers, que se passe-t-il ?

11. convert

  1. sachant que 1 kg = 2.205 lb
    créez une nouvelle colonne 'Mass (kg)' en convertissant les lb en kg
    arrondissez les flottants en entiers en utilisant cast

12. countries

  1. Quels sont les pays qui ont laissé des objets sur la lune ?

  2. Combien en ont-ils laissé en pourcentage (pas en nombre) ?

13. total

  1. quel est le poids total des objets sur la lune en kg ?

  2. quel est le poids total des objets laissés par les United States ?

14. blame

  1. quel pays a laissé l’objet le plus léger ?

  2. y a-t-il plusieurs objets ex-aequo ?

15. memorial

  1. y-a-t-il un Memorial sur la lune ?

  2. quel est le pays qui a mis ce mémorial ?

16. to_list

  1. faites la liste Python des objets sur la lune