Exercices Machine Learning Detecter et supprimer les doublons
🎉

Bravo!

Débutant 🧠 Fondamentaux 10 XP 0 personnes ont réussi

Detecter et supprimer les doublons

Quand tu fusionnes plusieurs fichiers CSV ou que tu recois des donnees d'un formulaire bugge, tu te retrouves souvent avec des lignes en double. Un client compte deux fois dans tes statistiques, un produit apparait en double dans tes predictions... Les doublons faussent tout, il faut les eliminer.

Pandas te donne :
df.duplicated() renvoie True pour chaque ligne qui est un doublon (la première occurrence est gardee)
df.duplicated().sum() compte le nombre de doublons
df.drop_duplicates() renvoie le DataFrame sans les doublons

Écris une fonction nettoyer_doublons(df) qui renvoie un dictionnaire avec :
'nb_doublons' : le nombre de lignes en doublon
'df_propre' : le DataFrame sans doublons

Exemple :

df = pd.DataFrame({'a': [1, 2, 1], 'b': [3, 4, 3]})
result = nettoyer_doublons(df)
# result['nb_doublons'] == 1
# result['df_propre'] a 2 lignes

Tests (4/4)

Doublons simples
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 1], 'b': [3, 4, 3]})
result = nettoyer_doublons(df)
assert result['nb_doublons'] == 1
assert len(result['df_propre']) == 2
Pas de doublons
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3]})
result = nettoyer_doublons(df)
assert result['nb_doublons'] == 0
assert len(result['df_propre']) == 3
Tous identiques
import pandas as pd
df = pd.DataFrame({'a': [5, 5, 5], 'b': [6, 6, 6]})
result = nettoyer_doublons(df)
assert result['nb_doublons'] == 2
assert len(result['df_propre']) == 1
DataFrame vide
import pandas as pd
df = pd.DataFrame({'a': pd.Series([], dtype='int64')})
result = nettoyer_doublons(df)
assert result['nb_doublons'] == 0

Indices (3 disponibles)

solution.py