← retour aux snippets

pandas: assign/pipe (chaining)

Chaîner des transformations lisibles via assign/pipe.

python pandas #pandas#assign#pipe

objectif

Chaîner des transformations lisibles via assign/pipe.

code minimal

import pandas as pd
df = (pd.DataFrame({"x":[1,2,3]})
      .assign(x2=lambda d: d["x"]**2)
      .pipe(lambda d: d[d["x2"]>2]))
print(df["x"].tolist())

utilisation

import pandas as pd
def only_even(d): return d[d["x"]%2==0]
print(pd.DataFrame({"x":[1,2,3]}).pipe(only_even)["x"].tolist())

variante(s) utile(s)

import pandas as pd
print(pd.DataFrame({"x":[1]}).assign(y=lambda d: d["x"]+1).shape[1])

notes

  • Favorise la lecture; évite variables intermédiaires.