-
-
Notifications
You must be signed in to change notification settings - Fork 157
Open
Labels
Master TrackerHigh level tracker for similar issuesHigh level tracker for similar issues
Description
The original 2.0 compatibility tracker #624 is very long. Here I list only the unresolved items as of 2025-12-23.
This is the list of things that are in pandas 2.0 release notes that need to be addressed in pandas-stubs. PR's welcome. If you do a PR, check off the item and put a link to the PR that closed it. One PR can address multiple issues.
Some of these may already have been taken care of, so if so, check them off and indicate with a comment such as "previously complete"
- Copy-on-Write can be enabled through one of
- pd.set_option("mode.copy_on_write", True)
- pd.options.mode.copy_on_write = True
- with pd.option_context("mode.copy_on_write", True):
- Construction with datetime64 or timedelta64 dtype with unsupported resolution (check allowable resolutions for
pd.Series()) - Disallow astype conversion to non-supported datetime64/timedelta64 dtypes
- The pandas latex options below are no longer used and have been removed. The generic max rows and columns arguments remain but for this functionality should be replaced by the Styler equivalents. The alternative options giving similar functionality are indicated below:
- display.latex.escape: replaced with styler.format.escape,
- display.latex.longtable: replaced with styler.latex.environment,
- display.latex.multicolumn, display.latex.multicolumn_format and display.latex.multirow: replaced with styler.sparse.rows, styler.sparse.columns, styler.latex.multirow_align and styler.latex.multicol_align,
- display.latex.repr: replaced with styler.render.repr,
- display.max_rows and display.max_columns: replace with styler.render.max_rows, styler.render.max_columns and styler.render.max_elements.
- The freq, tz, nanosecond, and unit keywords in the Timestamp constructor are now keyword-only
- DatetimeIndex.astype(), TimedeltaIndex.astype(), PeriodIndex.astype() Series.astype(), DataFrame.astype() with datetime64, timedelta64 or PeriodDtype dtypes no longer allow converting to integer dtypes other than “int64”, do obj.astype('int64', copy=False).astype(dtype) instead
- to_datetime() and DatetimeIndex now allow sequences containing both datetime objects and numeric entries, matching Series behavior
- Disallow computing cumprod for Timedelta object; previously this returned incorrect values
- (https://pandas.pydata.org/docs/reference/api/pandas.Timestamp.fromordinal.html#pandas.Timestamp.fromordinal)
- Removed deprecated CategoricalBlock, Block.is_categorical(), require datetime64 and timedelta64 values to be wrapped in DatetimeArray or TimedeltaArray before passing to Block.make_block_same_class(), require DatetimeTZBlock.values to have the correct ndim when passing to the BlockManager constructor, and removed the “fastpath” keyword from the SingleBlockManager constructor
- Removed deprecated global option use_inf_as_null in favor of use_inf_as_na
- Removed deprecated module pandas.core.index
- Removed deprecated alias pandas.io.json.json_normalize
- Removed deprecated pandas.api.types.is_categorical()
- Removed deprecated weekofyear and week attributes of DatetimeArray, DatetimeIndex and dt accessor (pandas 2.0 removals in core/arrays #932)
- Removed deprecated argument null_color in Styler.highlight_null()
- Enforced deprecation disallowing unit-less “datetime64” dtype in Series.astype() and DataFrame.astype()
- Enforced deprecation disallowing passing non boolean argument to sort in concat()
- Removed argument index from the core.arrays.SparseArray constructor
- Remove argument squeeze from DataFrame.groupby() and Series.groupby()
- Removed deprecated apply, apply_index, call, onOffset, and isAnchored attributes from DateOffset
- Remove arguments names and dtype from Index.copy() and levels and codes from MultiIndex.copy()
- Removed argument line_terminator from DataFrame.to_csv() and Series.to_csv(),
- Removed argument inplace from DataFrame.set_axis() and Series.set_axis()
- Disallow passing positional arguments to MultiIndex.set_levels() and MultiIndex.set_codes()
- Disallow parsing to Timedelta strings with components with units “Y”, “y”, or “M”, as these do not represent unambiguous durations
- Removed MultiIndex.is_lexsorted() and MultiIndex.lexsort_depth()
- Removed argument tz from Period.to_timestamp()
- Removed argument kind from Index.get_slice_bound(), Index.slice_indexer() and Index.slice_locs()
- Removed arguments prefix, squeeze, error_bad_lines and warn_bad_lines from read_csv()
- Disallow passing list key to Series.xs() and DataFrame.xs()
- Disallow subclass-specific keywords (e.g. “freq”, “tz”, “names”, “closed”) in the Index constructor
- Remove keywords convert_float and mangle_dupe_cols from read_excel()
- Remove keyword mangle_dupe_cols from read_csv() and read_table()
- Removed errors keyword from DataFrame.where(), Series.where(), DataFrame.mask() and Series.mask()
- Disallow passing non-keyword arguments to [read_excel()] (https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html#pandas.read_excel) except io and sheet_name
- Disallow passing non-keyword arguments to DataFrame.set_index() except keys
- Disallow passing non-keyword arguments to Resampler.interpolate() except method
- Disallow passing non-keyword arguments to DataFrame.reset_index() and Series.reset_index() except level
- Disallow passing non-keyword arguments to DataFrame.dropna() and Series.dropna()
- Disallow passing non-keyword arguments to ExtensionArray.argsort()
- Disallow passing non-keyword arguments to Categorical.sort_values()
- Disallow passing non-keyword arguments to Index.drop_duplicates() and Series.drop_duplicates()
- Disallow passing non-keyword arguments to DataFrame.drop_duplicates() except for subset
- Disallow passing non-keyword arguments to DataFrame.sort_index() and Series.sort_index()
- Disallow passing non-keyword arguments to DataFrame.interpolate() and Series.interpolate() except for method
- Disallow passing non-keyword arguments to DataFrame.any() and Series.any()
- Disallow passing non-keyword arguments to Index.set_names() except for names
- Disallow passing non-keyword arguments to Index.join() except for other
- Disallow passing non-keyword arguments to concat() except for objs
- Disallow passing non-keyword arguments to pivot() except for data
- Disallow passing non-keyword arguments to DataFrame.pivot()
- Disallow passing non-keyword arguments to read_html() except for io
- Disallow passing non-keyword arguments to read_json() except for path_or_buf
- Disallow passing non-keyword arguments to read_sas() except for filepath_or_buffer
- Disallow passing non-keyword arguments to read_stata() except for filepath_or_buffer
- Disallow passing non-keyword arguments to read_csv() except filepath_or_buffer
- Disallow passing non-keyword arguments to read_table() except filepath_or_buffer
- Disallow passing non-keyword arguments to read_fwf() except filepath_or_buffer
- Disallow passing non-keyword arguments to read_xml() except for path_or_buffer
- Disallow passing non-keyword arguments to Series.mask() and DataFrame.mask() except cond and other
- Disallow passing non-keyword arguments to DataFrame.to_stata() except for path
- Disallow passing non-keyword arguments to DataFrame.where() and Series.where() except for cond and other
- Disallow passing non-keyword arguments to Series.set_axis() and DataFrame.set_axis() except for labels
- Disallow passing non-keyword arguments to Series.rename_axis() and DataFrame.rename_axis() except for mapper
- Disallow passing non-keyword arguments to Series.clip() and DataFrame.clip()
- Disallow passing non-keyword arguments to Series.bfill(), Series.ffill(), DataFrame.bfill() and DataFrame.ffill()
- Disallow passing non-keyword arguments to DataFrame.replace(), Series.replace() except for to_replace and value
- Disallow passing non-keyword arguments to DataFrame.sort_values() except for by
- Disallow passing non-keyword arguments to Series.sort_values()
- Disallow passing non-keyword arguments to DataFrame.reindex() except for labels
- Disallowed constructing Categorical with scalar data
- Removed Rolling.validate(), Expanding.validate(), and ExponentialMovingWindow.validate()
- Removed Rolling.win_type returning "freq"
- Removed Rolling.is_datetimelike
- Removed the level keyword in DataFrame and Series aggregations
- Remove DataFrameGroupBy.pad() and DataFrameGroupBy.backfill()
- Remove numpy argument from read_json()
- Removed get_offset
- Removed the include_start and include_end arguments in DataFrame.between_time()
- Removed the closed argument in date_range() and bdate_range()
- Removed the center keyword in DataFrame.expanding()
- Removed the truediv keyword from eval()
- Removed the method and tolerance arguments in Index.get_loc()
- Removed the pandas.datetime submodule
- Removed the pandas.np submodule
- Removed pandas.util.testing
- Removed Series.str.iter()
- Removed pandas.SparseArray
- Removed pandas.SparseSeries and pandas.SparseDataFrame
- Enforced disallowing passing an integer fill_value to DataFrame.shift() and Series.shift`() with datetime64, timedelta64, or period dtypes
- Enforced disallowing a string column label into times in DataFrame.ewm()
- Enforced disallowing passing True and False into inclusive in Series.between() in favor of "both" and "neither" respectively
- Enforced disallowing the use of **kwargs in ExcelWriter
- Enforced disallowing a tuple of column labels into DataFrameGroupBy.getitem()
- Enforced disallowing set or dict indexers in getitem and setitem methods
- Enforced disallowing dict or set objects in suffixes in merge()
- Removed setting Categorical._codes directly
- Removed setting Categorical.categories directly
- Removed argument inplace from Categorical.set_ordered(), Categorical.as_ordered(), Categorical.as_unordered()
- Renamed fname to path in DataFrame.to_parquet(), DataFrame.to_stata() and DataFrame.to_feather()
- Removed the display.column_space option
- Removed the deprecated method mad from pandas classes
- Changed behavior of Index.ravel() to return a view on the original Index instead of a np.ndarray
- Removed the deprecated base and loffset arguments from pandas.DataFrame.resample(), pandas.Series.resample() and pandas.Grouper
- Changed behavior of comparison of a Timestamp with a datetime.date object; these now compare as un-equal and raise on inequality comparisons
- Changed behavior of comparison of NaT with a datetime.date object; these now raise on inequality comparisons
- Enforced deprecation disallowing passing numeric_only=True to Series reductions (rank, any, all, …) with non-numeric dtype
- Removed unused *args and **kwargs in Rolling, Expanding, and ExponentialMovingWindow ops
Metadata
Metadata
Assignees
Labels
Master TrackerHigh level tracker for similar issuesHigh level tracker for similar issues