You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This seems like a good starting point with all the changes in 3.0.0 from their release notes.
Not all will need to be taken care of, feel free to mark them as done when addressed.
DataFrame.to_excel() now raises a UserWarning when the character count in a cell exceeds Excel’s limitation of 32767 characters (GH 56954)
read_parquet() accepts to_pandas_kwargs which are forwarded to pyarrow.Table.to_pandas() which enables passing additional keywords to customize the conversion to pandas, such as maps_as_pydicts to read the Parquet map data type as python dictionaries (GH 56842)
read_stata() now returns datetime64 resolutions better matching those natively stored in the stata format (GH 55642)
DataFrame.to_csv() and Series.to_csv() now support f-strings (e.g., "{:.6f}") for the float_format parameter, in addition to the % format strings and callables (GH 49580)
Errors occurring during SQL I/O will now throw a generic DatabaseError instead of the raw Exception type from the underlying driver manager library (GH 60748)
Restore support for reading Stata 104-format and enable reading 103-format dta files (GH 58554)
Support reading Stata 102-format (Stata 1) dta files (GH 58978)
Support reading Stata 110-format (Stata 7) dta files (GH 47176)
Support reading value labels from Stata 108-format (Stata 6) and earlier files (GH 58154)
pandas.merge() propagates the attrs attribute to the result if all inputs have identical attrs, as has so far already been the case for pandas.concat().
Series.rank() and DataFrame.rank() with numpy-nullable dtypes preserve NA values and return UInt64 dtype where appropriate instead of casting NA to NaN with float64 dtype (GH 62043)
All classes inheriting from builtin tuple (including types created with collections.namedtuple()) are now hashed and compared as builtin tuple during indexing operations (GH 57922)
Made dtype a required argument in ExtensionArray._from_sequence_of_strings() (GH 56519)
Index set operations (like union or intersection) will now ignore the dtype of an empty RangeIndex or empty Index with object dtype when determining the dtype of the resulting Index (GH 60797)
IncompatibleFrequency now subclasses TypeError instead of ValueError. As a result, joins with mismatched frequencies now cast to object like other non-comparable joins, and arithmetic with indexes with mismatched frequencies align (GH 55782)
date_range() and timedelta_range() no longer default to unit="ns", instead will infer a unit from the start, end, and freq parameters. Explicitly specify a desired unit to override these (GH 59031)
ExtensionDtype.construct_array_type() is now a regular method instead of a classmethod (GH 58663)
Arithmetic operations between a Series, Index, or ExtensionArray with a list now consistently wrap that list with an array equivalent to Series(my_list).array. To do any other kind of type inference or casting, do so explicitly before operating (GH 62552)
Comparison operations between Index and Series now consistently return Series regardless of which object is on the left or right (GH 36759)
NumPy functions like np.isinf that return a bool dtype when called on a Index object now return a bool-dtype Index instead of np.ndarray (GH 52676)
This seems like a good starting point with all the changes in 3.0.0 from their release notes.
Not all will need to be taken care of, feel free to mark them as done when addressed.
Updated deprecation policy
Other enhancements
I/O:
Groupby/resample/rolling:
Reshaping:
Missing:
Numeric:
Strings:
Datetimelike:
Indexing:
Styler / output formatting:
Typing:
Plotting:
ExtensionArray:
Other:
Packaging:
Other API changes