inplace=True ne fait pas ce que son nom promet, casse les enchaînements, et Pandas s’en éloigne — surtout avec le copy-on-write. Vous écrivez df = df.dropna() plutôt que df.dropna(inplace=True).
Beaucoup de méthodes, même avec inplace=True, recopient en interne puis réaffectent les blocs. Vous n’avez pas économisé la RAM ; vous avez perdu la valeur de retour.
out = df.dropna(inplace=True) # out is None
df.dropna(inplace=True).head() # AttributeErrorLa deuxième ligne est le classique du notebook d’entretien : le candidat enchaîne, ça explose, il ne sait pas pourquoi. None n’a pas de .head().
Avec le copy-on-write, « modifier sur place » est encore moins vrai : l’implémentation se rapproche d’une copie + réassignation. Le paramètre devient un vestige.
df = df.drop(columns=["tmp"])
df = df.rename(columns={"amt": "montant"})
df = df.sort_values("date")Ou un seul enchaînement. Chaque ligne reste une expression dont le résultat est le DataFrame.
Les quelques méthodes où inplace survit (sort_values, fillna, rename, drop…) sont les mêmes que vous savez réassigner. Il n’y a pas de cas où inplace=True soit requis.
« Mais sur un très grand tableau, ça évite une copie ? »
Pas de façon fiable, et ce n’est plus l’argument officiel. Si la mémoire est le sujet, vous réduisez les colonnes, les dtypes, vous passez par Parquet ou par chunks — vous ne collectionnez pas des inplace=True comme des talismans.