← retour aux snippets

pandas: winsorize par quantiles

Limiter les valeurs extrêmes via coupure aux quantiles.

objectif

Limiter les valeurs extrêmes via coupure aux quantiles.

code minimal

import pandas as pd

s = pd.Series([1,2,3,100])
q1, q99 = s.quantile(0.01), s.quantile(0.99)
w = s.clip(lower=q1, upper=q99)
print(w.tolist())

utilisation

import pandas as pd

df = pd.DataFrame({"x":[1,2,3,100]})
capped = df["x"].clip(upper=df["x"].quantile(0.95))
print(capped.max())

variante(s) utile(s)

import pandas as pd

s = pd.Series([1,2,3,100])
iqr = s.quantile(0.75) - s.quantile(0.25)
print(round(iqr,2) >= 0.0)

notes

  • Alternative: détection via IQR et filtrage des outliers.