Notions intervenant dans ce TP
- suppression de colonnes avec
drop
sur uneDataFrame
- suppression de colonne entièrement vide avec
dropna
sur uneDataFrame
- accès aux informations sur la dataframe avec
info
- valeur contenues dans une
Series
avecunique
etvalue_counts
- conversion d’une colonne en type numérique avec
to_numeric
etastype
- accès et modification des chaînes de caractères contenues dans une colonne avec l’accesseur
str
desSeries
- génération de la liste Python des valeurs d’une série avec
tolist
N’oubliez pas d’utiliser le help en cas de problème.
Répartissez votre code sur plusieurs cellules
- importez les librairies
pandas
etnumpy
# votre code
- lisez le fichier de données
data/objects-on-the-moon.csv
- affichez sa taille et regardez quelques premières lignes
- lisez le fichier de données
# votre code
- vous remarquez une première colonne franchement inutile
utiliser la méthodedrop
des dataframes pour supprimer cette colonne de votre dataframepd.DataFrame.drop?
pour obtenir de l’aide
- vous remarquez une première colonne franchement inutile
# votre code
- appelez la méthode
info
des dataframes (non-null
signifienon-nan
i.e. non manquant) - remarquez une colonne entièrement vide
- appelez la méthode
# votre code
- utilisez la méthode
dropna
des dataframes pour supprimer en place les colonnes qui ont toutes leurs valeurs manquantes
(on s’interdit un code qui ferait explicitement référence à la colonne'Size'
) - vérifiez que vous avez bien enlevé la colonne
'Size'
- utilisez la méthode
# votre code
- affichez la ligne d’
index
88, que remarquez-vous ? - utilisez la méthode
dropna
des dataframes pour supprimer en place les lignes qui ont toutes leurs valeurs manquantes (et de nouveau sans faire référence à une ligne en particulier)
- affichez la ligne d’
# votre code
- utilisez l’attribut
dtypes
des dataframes pour voir le type de vos colonnes - que remarquez vous sur la colonne des masses ?
- utilisez l’attribut
# votre code
- utilisez la méthode
unique
desSeries
pour en regarder le contenu de la colonne des masses - que remarquez vous ?
- utilisez la méthode
# votre code
- conservez la colonne
'Mass (lb)'
d’origine
(par exemple dans une colonne de nom'Mass (lb) orig'
) - utilisez la fonction
pd.to_numeric
pour convertir la colonne'Mass (lb)'
en numérique
en remplaçant les valeurs invalides par la valeur manquante (NaN) - naturellement vous vérifiez votre travail en affichant le type de la série
df['Mass (lb)']
- combien y a-t-il de données manquantes dans cette colonne ?
- conservez la colonne
# votre code
- cette solution ne vous satisfait pas, vous ne voulez perdre aucune valeur
(même au prix de valeurs approchées) - vous décidez vaillamment de modifier les
str
en leur enlevant les caractères<
et>
afin de pouvoir en faire des entiers
- hint:
lespandas.Series
formées de chaînes de caractères sont du typepandas
object
mais elle possèdent un accesseurstr
qui permet de leur appliquer les méthodes python desstr
(comme par exemplereplace
)remplacer lesdf['Mass (lb) orig'].str
<
et les>
par des ‘’ (chaîne vide)
- utilisez la méthode
astype
desSeries
pour la convertir finalement enint
- cette solution ne vous satisfait pas, vous ne voulez perdre aucune valeur
# votre code
- sachant
1 kg = 2.205 lb
créez une nouvelle colonne'Mass (kg)'
en convertissant les lb en kg
arrondissez les flottants en entiers en utilisantastype
- sachant
# votre code
- Quels sont les pays qui ont laissé des objets sur la lune ?
- Combien en ont-ils laissé en pourcentage (pas en nombre) ?
hint: regardez les paramètres devalue_counts
# votre code
- quel est le poids total des objets sur la lune en kg ?
- quel est le poids total des objets laissés par les
United States
?
# votre code
- quel pays a laissé l’objet le plus léger ?
tip
voyez les méthodes Series.idxmin()
et Series.argmin()
# votre code
- y-a-t-il un Memorial sur la lune ?
hint:
en utilisant l’accesseurstr
de la colonne'Artificial object'
regardez si une des descriptions contient le terme'Memorial'
- quel est le pays qui a mis ce mémorial ?
- y-a-t-il un Memorial sur la lune ?
# votre code
- faites la liste Python des objets sur la lune
hint: voyez la méthodetolist()
des séries
- faites la liste Python des objets sur la lune
# votre code