BUG: read_csv(on_bad_lines="warn") should raise a UserWarning instead of writing to stderr · Issue #54296 · pandas-dev/pandas (original) (raw)

As the docs state

‘warn’, raise a warning when a bad line is encountered and skip that line.

In [4]: pd.read_csv(StringIO(data), on_bad_lines="warn")
Skipping line 3: expected 1 fields, saw 3
Skipping line 5: expected 1 fields, saw 3

Out[4]: 
   a
0  1
1  4

Since it's not a Python warning it cannot be handled with the warnings module per se.