Fyi known issue - https://github.com/pandas-dev/pandas/issues/54981
Work arround : use both forward and backward filling
sub_df[f"Δ {col}"] = sub_df[col].ffill().bfill().pct_change(fill_method=None)