Similar issue as https://github.com/pandas-dev/pandas/issues/6581, but starting a fresh one for keeping a log of the deprecations we do in the 1.x releases.

1.0.0

  • [x] #27929 numeric_only to Categorical.min/max
  • [x] #29457 is_extension_type
  • [x] #29731 remove keep_tz kwarg from DatetimeIndex.to_series
  • [x] #28621 Index.set_value (presumably also IndexEngine.set_value)
  • [x] #29812 Remove truediv kwarg from pd.eval
  • [x] #27745 Categorical.take_nd (closed by #49220)
  • [x] #29405 Use object dtype for empty Series
  • [x] #29909 str.__iter__
  • [x] #30338 "fname" argument in to_parquet, to_stata, to_feather changed to "path"
  • [x] #30482 RangeIndex._start, _stop, _step (closed by #49244)
  • [x] #30340 onOffset, isAnchored, get_offset (closed by #48685)
  • [x] #30386 pd.np
  • [x] #30489 pd.datetime
  • [x] #30546 groupby single-list indexing
  • [x] #30615 is_copy arg in .take
  • [x] #30636 numpy arg in read_json
  • [x] #30656 deprecated pd.SparseArray (leave in designated pd.array.SparseArray)
  • [x] #30702 CategoricalIndex.take_nd
  • [x] #30745 pandas.util.testing module.

1.0.1

  • [x] #31569 accepting a negative int in display.max_colwidth

1.1.0

  • [x] #31333 allowing single-item lists containing slice in Series.__getitem__ (closed by #49343)
  • [x] #34798 DataFrame/Series.describe treats datelike as numeric.
  • [x] #29941 DataFrame.mean and DataFrame.median with numeric_only=None will include datetime64 and datetime64tz columns in a future version (closed by #49250)
  • [x] #31840 loc.__setitem__ incorrectly accepting positional slices
  • [x] #32516 .to_dict(orient=), for abbreviations
  • [x] #32639 Categorical.to_dense (closed by #49220)
  • [x] #32516 .to_dict() aliases
  • [x] #33291 Index.is_mixed (closed by #49220)
  • [x] #27573 read_html and read_json non-keyword args (closed by #49302, #49415)
  • [x] #34418 read_excel non-keyword args
  • [x] #33385 is_categorical (closed by #49253)
  • [x] #33595 week, weekofyear in Series.dt,DatetimeIndex (closed by #49380)
  • [x] #33637 _AXIS_NUMBERS and _AXIS_NAMES properties on NDFrame and child classes (closed by #49244)
  • [x] #33907 Index.get_value (closed by #49208)
  • [x] #31809 `.resample(base=, loffset=)
  • [x] #34171 DateOffset.__call__ (closed by #48685)
  • [x] #33218 groupby(squeeze=)
  • [x] #34193 Index.__getitem__ with float key
  • [x] #34522 Period.to_timestamp "tz" kwarg (closed by #49280)
  • [x] #34545 DataFrame/Series.tshift
  • [x] #34810 pd.merge handling suffixes as a set.
  • [x] #34853 DatetimeIndex.to_perioddelta (closed by #49244)
  • [x] #34887 center keyword in .expanding()
  • [x] #30562 check_less_precise in assert_frame_equal/assert_series_equal
  • [x] #35003 deprecate a same column as the value parameter in DataFrame.melt
  • [x] #35141 multi-dimensional key to Series.__getitem__
  • [x] #34998 group_keys ignored for transform-like apply.
  • [x] #35165 Offset.apply_index (closed by #48685)

1.2.0

  • [x] #35626 inplace parameter in MultiIndex.set_codes and MultiIndex.set_levels
  • [x] #35853 dtype parameters in Index.copy
  • [x] #35741 pandas/io/date_converters.py
  • [x] #36418 Index.to_native_type (closed by #49244)
  • [x] #36179 string indexing along index for datetimes (closed by #49511)
  • [x] #36685 MultiIndex.copy(level, codes)
  • [x] #36649 .rolling(min_periods=None ...).count()
  • [x] #36795 automatic alignment on DataFrame cmp Series (closed by #49946)
  • [x] #36148 Indexing tz-aware with tz-naive (closed by #49492)
  • [x] #36695 regex=True in str.replace()
  • [x] #36900 Index.ravel
  • [x] #36695 default value of regex for Series.str.replace
  • [x] #36838 'Y', 'M', 'y' units in to_timedelta (closed by #47266)
  • [x] #37374 Index.__and__, __or__, __xor__ behaving as setops (closed by #49503)
  • [x] #37545 Categorical.is_dtype_equal and CategoricalIndex.is_dtype_equal (closed by #49220)
  • [x] #37601 DataFrame.slice_shift
  • [x] #37819 partial indexing of a non-monotonic DTI
  • [x] #37877 Index.asi8 (closed by #49220)
  • [x] #37918 Categorical.remove_unused_categories
  • [x] #37982 how keyword in Period.astype (closed by #49234)
  • [x] #37999 null_counts in DataFrame.info
  • [x] #35029 default for read_excel with engine=None changing
  • [x] #38134 ndim arg in Block.__init__
  • [ ] #35967 observed=False keyword in groupby (this is pending)
  • [x] #38317 xlwt in excel writing

1.2.1

  • [x] #39239

1.2.5

  • [x] #41789 lists in .xs (closed by #49511)

1.3.0

  • [x] #38544 .astype(int) on datetimelikes
  • [x] #38597 Index constuction sub-class keywords, additional tests needed (closed by #49311)
  • [x] #38472 passing a scalar to Categorical constructor
  • [x] #36697 Index.is_all_dates (tentative as reverted)
  • [x] #36131 Timestamp comparsion to datetime.date (closed by #49394)
  • [x] #38836 try_cast in .where/.mask
  • [x] #38701 MultiIndex.is_lexsorted
  • [x] #38963 Rolling.win_type returning "freq" & Rolling.is_datetimelike
  • [x] #38963 Rolling.is_datetimelike
  • [x] #39022 DataFrame.iloc[DataFrame.indexer] = ....
  • [x] #39220 EWM.vol
  • [x] #39258 .astype() with a tz-naive timestamp/index. (closed by #49235)
  • [x] #39022 DataFrame.iloc alignment with boolean DataFrame input
  • [x] #39767 .reindex with an incorrect fill value
  • [x] #40134 Styler.set_precision and Styler.set_na_rep
  • [x] #40238 partial failure in Series.transform or DataFrame.transform
  • [x] #40430 kwargs in read_excel
  • [x] #40363 MaskedRecords (closed by #49552)
  • [x] #40527 CategoricalBlock
  • [x] #40571 Block.is_categorical
  • [x] #40869 level= kwarg in DataFrame reduction methods
  • [x] #40991 merging with duplicated suffixes
  • [x] #40993 merging with non-equal number of levels
  • [x] #37981 Categorial.remove_categories
  • [x] #41118 Categorical.add_categories
  • [x] #41133 Categorical.reorder_categories
  • [x] #40821 Styler.where
  • [x] #41176 ExcelFile are convert_float
  • [x] #41378 Index._maybe_slice_bound loc keyword
  • [x] #41429 setting Categorical._codes
  • [x] #41130 usecols in read_csv that are out of bounds
  • [x] #41458 DatatimeIndex.union with mixed-timezones
  • [x] #41480 DataFrame reduction with nuiscance columns
  • [x] #41475 DataFrame groupby reductions with nuiscance columns
  • [x] #41510 Positional args in .interpolate (closed by #49302)
  • [x] #41559 Positional args in .fillna
  • [x] #41551 Positional args in .set_names (closed by #49302)
  • [x] #41523 Positional args in .where (closed by #49259)
  • [x] #41580 Positional args in .mask (closed by #49259)
  • [x] #41506 Positional args in .sort_index (closed by #49302)
  • [x] #41486 Positional args in .drop
  • [x] #41504 Positional args in .dropna (closed by #49359)
  • [x] #41505 Positional args in .sort_values (closed by #49259)
  • [x] #41508 Positional args in ffill/bfill (closed by #49259)
  • [x] #41511 Positional args in .clip (closed by #49259)
  • [x] #41491 Postiional args in .set_axis (closed by #49259)
  • [x] #41495 Positional args in .set_index (closed by #49359)
  • [x] #41496 Positional args in .reset_index (closed by #49359)
  • [x] #41589 Positional args in .set_levels
  • [x] #41650 Positional args in set_codes
  • [x] #41557 Dataframe construction with categorical in a list of arrays
  • [x] #41555 Series/DataFrame with tzaware data and tznaive dtype (closed by #48739)
  • [x] #40413 read_csv, error_bad_lines, warn_bad_lines
  • [x] #41657 Positional args in read_csv (closed by #49359)
  • [x] #41717 Positional args in read_table (closed by #49359)
  • [x] #41662 Series construction with i8 and DatetimeTZDtype as UTC (closed by #49242)
  • [x] #41734 Series construction with smaller dtypes than possible
  • [x] #41733 Dataframe construction ignoring invalid dtypes (closed by #49313)
  • [x] #41731 Series inference of M8, m8 w/o dtype (closed by #49319)
  • [x] #41770 Dataframe construction with int dtypes and floats. (closed by #49313)
  • [x] #40628 Series.between, inclusive options

1.4.0

  • [x] #42113 Index.is_type_compatible (closed by #49220)
  • [x] #42215 Setitem with integer and Float64Index (closed by #49530)
  • [x] #42269 Index.get_loc with method=
  • [x] #42351 Indexing with a MultiIndex and missing keys
  • [ ] #43028 Int64Index, Float64Index, UInt64Index
  • [x] #43265 .ewm(times=) as a string
  • [x] #43427 squeeze arg in pd.read_csv, pd.read_excel
  • [x] #43523 index arg to SparseArray (closed by #49552)
  • [x] #43504 closed arg in pd.date_range
  • [x] #43248 includes_* args in .between_time
  • [x] #43665 Rolling/Expanding.validate
  • [x] #43743,#43741 silent dropping of nuscance columns in .transform
  • [x] #43771 .hide_index / .hide_columns in Styler
  • [x] #44580 skipna for .mad
  • [x] #44629 passing non boolean value to sort in concat
  • [x] #44929 Categorical.replace
  • [x] #45059 numeric_only=None in DataFrame.rank

1.5.0

  • [x] #46188 treaing object-dtype blocks as bool_only (closed by #49371)
  • [x] #46096 numeric_only default in .quantile
  • [x] #46430 Timestamp.freq
  • [x] #46476 Timedelta.delta
  • [x] #46707 .mad
  • [x] #44896 .any non-kwargs (closed by #49302)
  • [x] #46906, #47177 numeric_only on DataFrame ops / resampler / groupby
  • [x] #46903 indexing a tz-naive DTI/series with a tz-aware convertible string
  • [x] #46518 Index.join for positional args (closed by #49302)
  • [x] #46522 remove closed keyword in Interval in favor of inclusive
  • [x] #46072
  • [x] #46852
  • [x] #47267 Timestamp(non_round_float, unit="Y/M") (closed by #49552)
  • [x] #47280 `display.column_space'
  • [x] #47244 groupby.transform aligning input
  • [x] #47157 na_sentinel in pd.factorize
  • [x] #47446 non-keyword args in split (closed by #49415)
  • [x] #47561 numeic_only in Series.rank
  • [x] #47636 IntervalIndex/IntervalArray.set_closed
  • [x] #47728 Series/DataFrame.mask/where(errors=...) (closed by #49415)
  • [x] #47761 iter(df.groupby([length-1-key])) returning a scalar
  • [x] #47834 Categorical.set_ordered, setting .categories inplace
  • [x] #47912 to_excel(encoding=..., verbose...) (unused)
  • [x] #48073 deprecate sort_columns in plot
  • [x] #48137 mangle_dupe_cols
  • [x] #48130
  • [x] #48128
  • [x] #48115Reverted
  • [x] #48301
  • [x] #47851
  • [x] #45574
  • [x] #45333

1.5.1

  • [x] #48780

1.5.2

  • [x] #49615

Comment From: jbrockmendel

For this one, let's use the checkboxes instead of cut/pasting to a separate issue when they are removed.

Comment From: jorisvandenbossche

For this one, let's use the checkboxes instead of cut/pasting to a separate issue when they are removed.

Yes, +1, that's also what I wanted to propose

Comment From: mroeschke

Noting some things to look out for to ensure there's a "thorough" removal when enforcing these deprecations (referencing the original PR may not encompass the extent of the feature)

  • [ ] Doc changes
    • [ ] Remove/modify docstrings
    • [ ] Remove/modify API reference (if applicable)
    • [ ] Remove/modify references in User Guide
  • [ ] Code changes
    • [ ] Remove warning.warn call & modify code as needed
    • [ ] Remove related warnings.filterwarnings in other parts of the codebase (if any)
    • [ ] Adjust type annotations (if related)
  • [ ] Test changes
    • [ ] Remove tests checking the FutureWarning
    • [ ] Modify/add tests (if any) to confirm the future behavior
    • [ ] Remove any related filterwarnings (pytest.mark.filterwarnings, pyproject.toml)

Comment From: rhshadrach

I searched through the pandas code, found a few more deprecations that weren't previously in the list, and added them.

PR authors: @jbrockmendel, @jorisvandenbossche, and myself

Comment From: mroeschke

All prior deprecations have been enforced so closing

Comment From: rhshadrach

Pandas DEPR: log of deprecations in 1.x (to be removed in 2.0)