← retour aux snippets

pandas: categorical pour mémoire

Optimiser la mémoire en convertissant des colonnes catégorielles.

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.