objectif
Optimiser la mémoire en convertissant des colonnes catégorielles.
code minimal
import pandas as pd
s = pd.Series(["FR","FR","DE","ES"], dtype="category")
print(s.cat.categories.tolist())
utilisation
import pandas as pd
df = pd.DataFrame({"country":["FR"]*100 + ["DE"]*50})
df["country"] = df["country"].astype("category")
print(str(df["country"].dtype))
variante(s) utile(s)
import pandas as pd
s = pd.Series(["a","b","a","c"]).astype("category")
print(s.cat.codes.tolist())
notes
- Les catégorielles réduisent la RAM et accélèrent les groupby.