← retour aux snippets

pandas: read_csv dtype & na_values

Forcer types et définir les valeurs NA lors de l'import.

python io #pandas#csv#dtype

objectif

Forcer types et définir les valeurs NA lors de l’import.

code minimal

import pandas as pd, io
csv = "id,flag\n1,yes\n2,NA\n"
df = pd.read_csv(io.StringIO(csv), dtype={"id":"int64"}, na_values=["NA","null"])
print(df["flag"].isna().sum())

utilisation

import pandas as pd, io
csv = "id,code\n1,001\n2,010\n"
df = pd.read_csv(io.StringIO(csv), dtype={"code":"string"})
print(df["code"].iloc[0])

variante(s) utile(s)

import pandas as pd, io
csv = "id,val\n1,3.14\n2,2.71\n"
print(pd.read_csv(io.StringIO(csv), float_precision="high").shape[0])

notes

  • dtype évite des surprises (codes postaux, id longs, etc.).