Que regardez-vous sur un DataFrame avant d’écrire la première ligne de code ?

Questions d’entrevue Python et Pandas

Intermédiairepandas

Le réflexe

Trois lectures, dans cet ordre, avant le premier fillna ou le premier merge :

python
df.dtypes
df.isna().mean().sort_values(ascending=False)
df.nunique()
df.memory_usage(deep=True)

Puis un head, un describe(include="all") si le tableau est encore lisible. Pas l’inverse : head rassure, les dtypes disent la vérité.

C’est ce que décrit l’ouverture de nettoyer des données sales, et c’est ce qu’un intervieweur data reconnaît en trente secondes de live coding.

Pourquoi ces trois-là

Les dtypes. Un identifiant en float64 (12345.0), un code postal en float, une date en object, un booléen en int64 avec des 2 : chaque calcul ensuite est un quiproquo. Vous ne moyennez pas un ID. Vous ne joignez pas 1 et "1" en espérant le hasard.

Les NA. Une colonne à 3 % de vides n’est pas une colonne à 80 % de vides. La seconde est peut-être un champ mort, ou le vrai signal (résiliation). Sans le taux, dropna est une roulette.

La cardinalité. nunique() confronté au nombre de lignes : une « clé unique » qui ne l’est pas, une catégorie à 1,2 million de modalités (vous ne la mettrez pas en category), un pays à 3 valeurs dont "CA ", "ca" et "Canada". La cardinalité avant recodage évite de traiter des synonymes comme des classes.

Ce que vous en faites tout de suite

Vous ne « commencez pas à coder le brief ». Vous posez trois phrases : ce qui est mal typé, ce qui manque trop pour être ignoré, ce dont la clé est menteuse. Ensuite le plan de nettoyage a un objet.

La relance

« Vous avez cinq minutes, le manager veut un chiffre. »

Même réflexe, plus court : dtype de la colonne du chiffre, NA, unicité de la clé de grain. Un total sur un montant object ou sur des lignes explosées est pire qu’un retard de cinq minutes. L’intervieweur ne teste pas la vitesse de frappe ; il teste si vous refusez de calculer sur un tableau non lu.

Toutes les questions Python et Pandas