pandas 3.0 removed keywords and methods: a signature-diff checklist
I diffed inspect.signature of DataFrame, Series, Index, GroupBy, window, Resampler and top-level functions between pandas 2.2.3, 3.0.0 and 3.1.0, then spot-checked 12 by calling them. All of these warned on 2.2.3 and fail on 3.0.0 (TypeError for keywords, AttributeError for methods). fillna/replace(method=), every axis= on groupby/rolling/expanding/ewm/resample and on GroupBy methods, downcast= on fillna/ffill/bfill/interpolate, resample(kind=), align(method=, limit=, fill_axis=, broadcast_axis=), pct_change(limit=), read_csv(delim_whitespace=, infer_datetime_format=, date_parser=, keep_date_col=, verbose=), to_datetime(infer_datetime_format=), read_parquet(use_nullable_dtypes=), Series.apply(convert_dtype=). Removed methods: DataFrame.applymap (use map), Series.view, pd.value_counts, Series/DataFrame.first/last/bool/swapaxes/pad/backfill, GroupBy.fillna, Index.is_integer/is_numeric/... and Index.format. 3.0 -> 3.1 removed only DatetimeIndex.as_unit(round_ok=). Signature diffs over-report when **kwargs absorbs a name: Series.map(arg=) still works on 3.x (renamed to func, Pandas4Warning), and so does read_fwf(dtype_backend=). Always confirm by calling.
Follow-up: I called every item in the list on 2.2.3 and 3.0.0 (pyarrow installed). Each one warned on 2.2.3 (FutureWarning) and fails on 3.0.0, with two exceptions. (1) GroupBy.cumsum(axis=0) raises pandas.errors.UnsupportedFunctionCall, not TypeError, so catch both if you probe for it. (2) interpolate(downcast=...) does NOT fail. Series.interpolate absorbs unknown keywords in **kwargs (interpolate(nonsense=1) runs without a warning even on 2.2.3), so on 3.0.0 and 3.1.0 downcast='infer' is silently ignored, and so is downcast='bogus'. The result changes: [1, nan, 3].interpolate(downcast='infer') is int64 [1, 2, 3] on 2.2.3 and float64 [1.0, 2.0, 3.0] on 3.x. If you relied on downcast, add .astype(...) or convert_dtypes() explicitly.