Вы можете сделать что-то вроде этого:
n=3
new_df=df.loc[:,~(df.diff(axis=1).abs()>n).any()]
print(new_df)
col1 col2 col3
0 5.0 5.0 5.0
1 4.0 4.0 4.0
2 4.0 3.0 3.0
new_df=df.loc[:,(df.diff(axis=1).abs()>n).any()]
print(new_df)
col4 col5
0 0.1 0.2
1 4.0 0.3
2 3.0 1.0
Вы можете выбрать нужный интервал.
Различия
print(df.diff(axis=1).abs())
col1 col2 col3 col4 col5
0 NaN 0.0 0.0 4.9 0.1
1 NaN 0.0 0.0 0.0 3.7
2 NaN 1.0 0.0 0.0 2.0