Upgrading pandas 1 to 2
Breaking1.5.3 → 2.3.3Breaking1Security1Platform4Fixed1
BreakingUpgrade verdict
1 breaking change and 4 platform requirement changes and a security fix.
In plain terms
- This is a big new version of pandas that may break some existing code, so test your code before upgrading.
- You need Python 3.9 or newer; Python 3.14 now works.
- This version of pandas needs Python 3.10 or newer to run.
- This version of pandas needs Python 3.9 or newer to run.
Must act Top 5 of 6 that need code or config changes
Python requirement changed in 2.1.0: >=3.8 → >=3.9.
Adds tzdata >=2022.7.
What you must change
Breaking1
pandas 2.0.0 is a major release from the pandas 1 series that includes possible breaking changes.
Security1
Includes a security fix in this patch release.
Platform4
Supports Python 3.9 and higher, and is the first release to support Python 3.14.
Pandas 2.3.0 supports Python 3.10 and higher.
Pandas 2.2.0 supports Python 3.9 and higher.
Pandas 2.1.0 supports Python 3.9 and higher.
API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- added:
export typing
- added:
export DataFrameGroupBy - added:
export DatetimeIndexResamplerGroupby - added:
export Expanding - added:
export ExpandingGroupby - added:
export ExponentialMovingWindow - added:
export ExponentialMovingWindowGroupby - added:
export JsonReader - added:
export NAType - added:
export NaTType - added:
export PeriodIndexResamplerGroupby - added:
export Resampler - added:
export Rolling - added:
export RollingGroupby - added:
export SeriesGroupBy - added:
export StataReader - added:
export TimeGrouper - added:
export TimedeltaIndexResamplerGroupby - added:
export Window
- removed:
export PandasArray - added:
export NumpyExtensionArray
- removed:
export np_version_under1p21 - removed:
export pa_version_under1p01 - removed:
export pa_version_under2p0 - removed:
export pa_version_under3p0 - removed:
export pa_version_under4p0 - removed:
export pa_version_under5p0 - removed:
export pa_version_under6p0 - removed:
export pa_version_under7p0 - removed:
export pa_version_under8p0 - removed:
export pa_version_under9p0 - added:
export HAS_PYARROW - added:
export IS64 - added:
export ISMUSL - added:
export PY310 - added:
export PY311 - added:
export PY312 - added:
export PY314 - added:
export PYPY - added:
export WARNING_CHECK_DISABLED - added:
export pa_version_under10p1 - added:
export pa_version_under11p0 - added:
export pa_version_under13p0 - added:
export pa_version_under14p0 - added:
export pa_version_under14p1 - added:
export pa_version_under16p0 - added:
export pa_version_under17p0 - added:
export pa_version_under18p0 - added:
export pa_version_under19p0 - added:
export pa_version_under20p0 - added:
export pa_version_under21p0
- removed:
class DeepChainMap(ChainMap[_KT, _VT])
- added:
class BZ2File(bz2.BZ2File) - added:
class LZMAFile(lzma.LZMAFile) - added:
function flatten_buffer(b: bytes | bytearray | memoryview | PickleBuffer) -> bytes | bytearray | memoryview - added:
method BZ2File.write(b) -> int - added:
method LZMAFile.write(b) -> int - added:
variable has_bz2 - added:
variable has_lzma
- removed:
function validate_expanding_func(name, args, kwargs) -> None - removed:
function validate_rolling_func(name, args, kwargs) -> None - removed:
function validate_window_func(name, args, kwargs) -> None - changed:
function validate_cum_func_with_skipna(skipna, args, kwargs, name) -> bool → function validate_cum_func_with_skipna(skipna: bool, args, kwargs, name) -> bool - changed:
function validate_groupby_func(name, args, kwargs, allowed=…) -> None → function validate_groupby_func(name: str, args, kwargs, allowed=…) -> None - changed:
function validate_minmax_axis(axis: int | None, ndim: int=…) -> None → function validate_minmax_axis(axis: AxisInt | None, ndim: int=…) -> None - added:
function validate_func(fname, args, kwargs) -> None - added:
variable MEAN_DEFAULTS
- changed:
function load_newobj(self) → function load_newobj(self) -> None - changed:
function load_newobj_ex(self) → function load_newobj_ex(self) -> None - changed:
function load_reduce(self) → function load_reduce(self) -> None - changed:
function patch_pickle() -> Iterator[None] → function patch_pickle() -> Generator[None, None, None]
- removed:
variable pa_version_under1p01 - removed:
variable pa_version_under2p0 - removed:
variable pa_version_under3p0 - removed:
variable pa_version_under4p0 - removed:
variable pa_version_under5p0 - removed:
variable pa_version_under6p0 - removed:
variable pa_version_under7p0 - removed:
variable pa_version_under8p0 - removed:
variable pa_version_under9p0 - added:
variable HAS_PYARROW - added:
variable pa_version_under10p1 - added:
variable pa_version_under11p0 - added:
variable pa_version_under12p0 - added:
variable pa_version_under13p0 - added:
variable pa_version_under14p0 - added:
variable pa_version_under14p1 - added:
variable pa_version_under15p0 - added:
variable pa_version_under16p0 - added:
variable pa_version_under17p0 - added:
variable pa_version_under18p0 - added:
variable pa_version_under19p0 - added:
variable pa_version_under20p0 - added:
variable pa_version_under21p0
- removed:
function datetime_frame() -> DataFrame - removed:
function fsspectest() - removed:
function iris(datapath) -> DataFrame - removed:
function mixed_type_frame() -> DataFrame - removed:
function series_with_multilevel_index() -> Series - removed:
variable suppress_npdev_promotion_warning - changed:
function dict_subclass() → function dict_subclass() -> type[dict] - changed:
function names(request) → function names(request) -> tuple[Hashable, Hashable, Hashable] - changed:
function non_dict_mapping_subclass() → function non_dict_mapping_subclass() -> type[abc.Mapping] - changed:
function pytest_collection_modifyitems(items, config) → function pytest_collection_modifyitems(items, config) -> None - changed:
function using_array_manager() → function using_array_manager() -> bool - added:
function all_numeric_accumulations(request) - added:
function any_numeric_ea_and_arrow_dtype(request) - added:
function any_real_nullable_dtype(request) - added:
function any_real_numeric_dtype(request) - added:
function arrow_string_storage() - added:
function complex_or_float_dtype(request) - added:
function dtype_backend(request) - added:
function index_or_series_memory_obj(request) - added:
function pyarrow_string_dtype(request) - added:
function skipna(request) - added:
function string_dtype_arguments(request) - added:
function string_dtype_no_object(request) - added:
function unit(request) - added:
function using_infer_string() -> bool - added:
function warn_copy_on_write() -> bool - added:
function warsaw(request) -> str - added:
variable hypothesis_health_checks - added:
variable string_dtype_arguments2 - added:
variable unit2 - added:
variable warsaws
- changed:
function delegate_names(delegate, accessors, typ: str, overwrite: bool=…) → function delegate_names(delegate, accessors: list[str], typ: str, overwrite: bool=…, accessor_mapping: Callable[[str], str]=…, raise_on_missing: bool=…) - changed:
function register_dataframe_accessor(name) → function register_dataframe_accessor(name: str) - changed:
function register_index_accessor(name) → function register_index_accessor(name: str) - changed:
function register_series_accessor(name) → function register_series_accessor(name: str)
- removed:
class SelectN - removed:
class SelectNFrame(SelectN) - removed:
class SelectNSeries(SelectN) - removed:
constructor SelectN(obj, n: int, keep: str) -> None - removed:
constructor SelectNFrame(obj: DataFrame, n: int, keep: str, columns: IndexLabel) -> None - removed:
function checked_add_with_arr(arr: npt.NDArray[np.int64], b: int | npt.NDArray[np.int64], arr_mask: npt.NDArray[np.bool_] | None=…, b_mask: npt.NDArray[np.bool_] | None=…) -> npt.NDArray[np.int64] - removed:
function resolve_na_sentinel(na_sentinel: int | None | lib.NoDefault, use_na_sentinel: bool | lib.NoDefault) -> int | None - removed:
method SelectN.compute(method: str) -> DataFrame | Series - removed:
method SelectN.nlargest() - removed:
method SelectN.nsmallest() - removed:
method SelectNFrame.compute(method: str) -> DataFrame - removed:
method SelectNSeries.compute(method: str) -> Series - removed:
static method SelectN.is_valid_dtype_n_method(dtype: DtypeObj) -> bool - changed:
function diff(arr, n: int, axis: int=…) → function diff(arr, n: int, axis: AxisInt=…) - changed:
function duplicated(values: ArrayLike, keep: Literal['first', 'last', False]=…) -> npt.NDArray[np.bool_] → function duplicated(values: ArrayLike, keep: Literal['first', 'last', False]=…, mask: npt.NDArray[np.bool_] | None=…) -> npt.NDArray[np.bool_] - changed:
function factorize(values, sort: bool=…, na_sentinel: int | None | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…, size_hint: int | None=…) -> tuple[np.ndarray, np.ndarray | Index] → function factorize(values, sort: bool=…, use_na_sentinel: bool=…, size_hint: int | None=…) -> tuple[np.ndarray, np.ndarray | Index] - changed:
function factorize_array(values: np.ndarray, na_sentinel: int | None=…, size_hint: int | None=…, na_value: object=…, mask: npt.NDArray[np.bool_] | None=…) -> tuple[npt.NDArray[np.intp], np.ndarray] → function factorize_array(values: np.ndarray, use_na_sentinel: bool=…, size_hint: int | None=…, na_value: object=…, mask: npt.NDArray[np.bool_] | None=…) -> tuple[npt.NDArray[np.intp], np.ndarray] - changed:
function isin(comps: AnyArrayLike, values: AnyArrayLike) -> npt.NDArray[np.bool_] → function isin(comps: ListLike, values: ListLike) -> npt.NDArray[np.bool_] - changed:
function rank(values: ArrayLike, axis: int=…, method: str=…, na_option: str=…, ascending: bool=…, pct: bool=…) -> npt.NDArray[np.float64] → function rank(values: ArrayLike, axis: AxisInt=…, method: str=…, na_option: str=…, ascending: bool=…, pct: bool=…) -> npt.NDArray[np.float64] - changed:
function safe_sort(values, codes=…, na_sentinel: int=…, assume_unique: bool=…, verify: bool=…) -> np.ndarray | MultiIndex | tuple[np.ndarray | MultiIndex, np.ndarray] → function safe_sort(values: Index | ArrayLike, codes: npt.NDArray[np.intp] | None=…, use_na_sentinel: bool=…, assume_unique: bool=…, verify: bool=…) -> AnyArrayLike | tuple[AnyArrayLike, np.ndarray] - changed:
function searchsorted(arr: ArrayLike, value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] | np.intp → function searchsorted(arr: ArrayLike, value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - changed:
function take(arr, indices: TakeIndexer, axis: int=…, allow_fill: bool=…, fill_value=…) → function take(arr, indices: TakeIndexer, axis: AxisInt=…, allow_fill: bool=…, fill_value=…) - changed:
function union_with_duplicates(lvals: ArrayLike, rvals: ArrayLike) -> ArrayLike → function union_with_duplicates(lvals: ArrayLike | Index, rvals: ArrayLike | Index) -> ArrayLike | Index - changed:
function value_counts_arraylike(values: np.ndarray, dropna: bool, mask: npt.NDArray[np.bool_] | None=…) -> tuple[ArrayLike, npt.NDArray[np.int64]] → function value_counts_arraylike(values: np.ndarray, dropna: bool, mask: npt.NDArray[np.bool_] | None=…) -> tuple[ArrayLike, npt.NDArray[np.int64], int] - added:
function map_array(arr: ArrayLike, mapper, na_action: Literal['ignore'] | None=…, convert: bool=…) -> np.ndarray | ExtensionArray | Index - added:
function nunique_ints(values: ArrayLike) -> int - added:
function value_counts_internal(values, sort: bool=…, ascending: bool=…, normalize: bool=…, bins=…, dropna: bool=…) -> Series
- removed:
export Float64Index - removed:
export Int64Index - removed:
export NumericIndex - removed:
export UInt64Index
- removed:
method Apply.apply_multiple() -> DataFrame | Series - removed:
method FrameApply.dtypes() -> Series - removed:
method FrameRowApply.apply_broadcast(target: DataFrame) -> DataFrame - removed:
property FrameApply.series_generator -> Iterator[Series] - removed:
property FrameColumnApply.series_generator - removed:
property FrameRowApply.series_generator - changed:
class ResamplerWindowApply(Apply) → class ResamplerWindowApply(GroupByApply) - changed:
constructor Apply(obj: AggObjType, func, raw: bool, result_type: str | None, args, kwargs) -> None → constructor Apply(obj: AggObjType, func: AggFuncType, raw: bool, result_type: str | None, *, by_row: Literal[False, 'compat', '_compat']=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…, args, kwargs) -> None - changed:
constructor GroupByApply(obj: GroupBy[NDFrameT], func: AggFuncType, args, kwargs) -> None → constructor GroupByApply(obj: GroupBy[NDFrameT], func: AggFuncType, *, args, kwargs) -> None - changed:
constructor ResamplerWindowApply(obj: Resampler | BaseWindow, func: AggFuncType, args, kwargs) -> None → constructor ResamplerWindowApply(obj: Resampler | BaseWindow, func: AggFuncType, *, args, kwargs) -> None - changed:
constructor SeriesApply(obj: Series, func: AggFuncType, convert_dtype: bool, args, kwargs) -> None → constructor SeriesApply(obj: Series, func: AggFuncType, *, convert_dtype: bool | lib.NoDefault=…, by_row: Literal[False, 'compat', '_compat']=…, args, kwargs) -> None - changed:
field Apply.axis: int → field Apply.axis: AxisInt - changed:
field FrameColumnApply.axis → field FrameColumnApply.axis: AxisInt - changed:
field FrameRowApply.axis → field FrameRowApply.axis: AxisInt - changed:
field ResamplerWindowApply.axis → field ResamplerWindowApply.axis: AxisInt - changed:
field SeriesApply.axis → field SeriesApply.axis: AxisInt - changed:
function frame_apply(obj: DataFrame, func: AggFuncType, axis: Axis=…, raw: bool=…, result_type: str | None=…, args=…, kwargs=…) -> FrameApply → function frame_apply(obj: DataFrame, func: AggFuncType, axis: Axis=…, raw: bool=…, result_type: str | None=…, by_row: Literal[False, 'compat']=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…, args=…, kwargs=…) -> FrameApply - changed:
function normalize_keyword_aggregation(kwargs: dict) -> tuple[dict, list[str], npt.NDArray[np.intp]] → function normalize_keyword_aggregation(kwargs: dict) -> tuple[MutableMapping[Hashable, list[AggFuncTypeBase]], tuple[str, ...], npt.NDArray[np.intp]] - changed:
function reconstruct_func(func: AggFuncType | None, **kwargs) -> tuple[bool, AggFuncType | None, list[str] | None, npt.NDArray[np.intp] | None] → function reconstruct_func(func: AggFuncType | None, **kwargs) -> tuple[bool, AggFuncType, tuple[str, ...] | None, npt.NDArray[np.intp] | None] - changed:
method Apply.transform_dict_like(func) → method Apply.transform_dict_like(func) -> DataFrame - changed:
method FrameApply.apply_raw() → method FrameApply.apply_raw(engine=…, engine_kwargs=…) - added:
constructor FrameApply(obj: AggObjType, func: AggFuncType, raw: bool, result_type: str | None, *, by_row: Literal[False, 'compat']=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…, args, kwargs) -> None - added:
field GroupByApply.obj: GroupBy | Resampler | BaseWindow - added:
field NDFrameApply.obj: DataFrame | Series - added:
field SeriesApply.by_row: Literal[False, 'compat', '_compat'] - added:
function include_axis(op_name: Literal['agg', 'apply'], colg: Series | DataFrame) -> bool - added:
function reconstruct_and_relabel_result(result, func, **kwargs) -> DataFrame | Series - added:
function warn_alias_replacement(obj: AggObjType, func: Callable, alias: str) -> None - added:
method Apply.agg_or_apply_dict_like(op_name: Literal['agg', 'apply']) -> DataFrame | Series - added:
method Apply.agg_or_apply_list_like(op_name: Literal['agg', 'apply']) -> DataFrame | Series - added:
method Apply.apply_list_or_dict_like() -> DataFrame | Series - added:
method Apply.compute_dict_like(op_name: Literal['agg', 'apply'], selected_obj: Series | DataFrame, selection: Hashable | Sequence[Hashable], kwargs: dict[str, Any]) -> tuple[list[Hashable], list[Any]] - added:
method Apply.compute_list_like(op_name: Literal['agg', 'apply'], selected_obj: Series | DataFrame, kwargs: dict[str, Any]) -> tuple[list[Hashable] | Index, list[Any]] - added:
method Apply.wrap_results_dict_like(selected_obj: Series | DataFrame, result_index: list[Hashable], result_data: list) - added:
method Apply.wrap_results_list_like(keys: Iterable[Hashable], results: list[Series | DataFrame]) - added:
method FrameApply.apply_series_numba() - added:
method FrameApply.apply_with_numba() - added:
method FrameApply.validate_values_for_numba() - added:
method FrameColumnApply.apply_with_numba() -> dict[int, Any] - added:
method FrameRowApply.apply_with_numba() -> dict[int, Any] - added:
method GroupByApply.agg_or_apply_dict_like(op_name: Literal['agg', 'apply']) -> DataFrame | Series - added:
method GroupByApply.agg_or_apply_list_like(op_name: Literal['agg', 'apply']) -> DataFrame | Series - added:
method NDFrameApply.agg_or_apply_dict_like(op_name: Literal['agg', 'apply']) -> DataFrame | Series - added:
method NDFrameApply.agg_or_apply_list_like(op_name: Literal['agg', 'apply']) -> DataFrame | Series - added:
method SeriesApply.apply_compat() - added:
property FrameApply.series_generator -> Generator[Series, None, None] - added:
property FrameColumnApply.series_generator -> Generator[Series, None, None] - added:
property FrameRowApply.series_generator -> Generator[Series, None, None] - added:
static method FrameApply.generate_numba_apply_func(func, nogil=…, nopython=…, parallel=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] - added:
static method FrameColumnApply.generate_numba_apply_func(func, nogil=…, nopython=…, parallel=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] - added:
static method FrameRowApply.generate_numba_apply_func(func, nogil=…, nopython=…, parallel=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]]
- added:
function cummax(values: np.ndarray, *, skipna: bool=…) - added:
function cummin(values: np.ndarray, *, skipna: bool=…) - added:
function cumsum(values: np.ndarray, *, skipna: bool=…) -> np.ndarray
- added:
function cummax(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) - added:
function cummin(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) - added:
function cumprod(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) - added:
function cumsum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…)
- changed:
function max(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: int | None=…) → function max(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: AxisInt | None=…) - changed:
function mean(values: np.ndarray, mask: npt.NDArray[np.bool_], skipna: bool=…) → function mean(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: AxisInt | None=…) - changed:
function min(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: int | None=…) → function min(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: AxisInt | None=…) - changed:
function prod(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, min_count: int=…, axis: int | None=…) → function prod(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…) - changed:
function sum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, min_count: int=…, axis: int | None=…) → function sum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…) - added:
function std(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…) - added:
function var(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…)
- changed:
function validate_putmask(values: ArrayLike, mask: np.ndarray) -> tuple[npt.NDArray[np.bool_], bool] → function validate_putmask(values: ArrayLike | MultiIndex, mask: np.ndarray) -> tuple[npt.NDArray[np.bool_], bool]
- changed:
function compare_or_regex_search(a: ArrayLike, b: Scalar | Pattern, regex: bool, mask: npt.NDArray[np.bool_]) -> ArrayLike | bool → function compare_or_regex_search(a: ArrayLike, b: Scalar | Pattern, regex: bool, mask: npt.NDArray[np.bool_]) -> ArrayLike
- changed:
function take_nd(arr: np.ndarray, indexer, axis: int=…, fill_value=…, allow_fill: bool=…) -> np.ndarray | (arr: ExtensionArray, indexer, axis: int=…, fill_value=…, allow_fill: bool=…) -> ArrayLike → function take_nd(arr: np.ndarray, indexer, axis: AxisInt=…, fill_value=…, allow_fill: bool=…) -> np.ndarray | (arr: ExtensionArray, indexer, axis: AxisInt=…, fill_value=…, allow_fill: bool=…) -> ArrayLike
- changed:
function shift(values: np.ndarray, periods: int, axis: int, fill_value) -> np.ndarray → function shift(values: np.ndarray, periods: int, axis: AxisInt, fill_value: Scalar) -> np.ndarray
- removed:
export PandasArray - added:
export NumpyExtensionArray
- removed:
export ArrowDtype - added:
export ListAccessor - added:
export StructAccessor
- added:
class ArrowAccessor - added:
class ListAccessor(ArrowAccessor) - added:
class StructAccessor(ArrowAccessor) - added:
constructor ArrowAccessor(data, validation_msg: str) -> None - added:
constructor ListAccessor(data=…) -> None - added:
constructor StructAccessor(data=…) -> None - added:
method ListAccessor.flatten() -> Series - added:
method ListAccessor.len() -> Series - added:
method StructAccessor.explode() -> DataFrame - added:
method StructAccessor.field(name_or_index: list[str] | list[bytes] | list[int] | pc.Expression | bytes | str | int) -> Series - added:
property StructAccessor.dtypes -> Series
- removed:
variable ArrowExtensionArrayT - changed:
class ArrowExtensionArray(OpsMixin, ExtensionArray) → class ArrowExtensionArray(OpsMixin, ExtensionArraySupportsAnyAll, ArrowStringArrayMixin, BaseStringArrayMethods) - changed:
function cast_for_truediv(arrow_array: pa.ChunkedArray, pa_object: pa.Array | pa.Scalar) -> pa.ChunkedArray → function cast_for_truediv(arrow_array: pa.ChunkedArray, pa_object: pa.Array | pa.Scalar) -> tuple[pa.ChunkedArray, pa.Array | pa.Scalar] - changed:
method ArrowExtensionArray.argsort(ascending: bool=…, kind: str=…, na_position: str=…, *args, **kwargs) -> np.ndarray → method ArrowExtensionArray.argsort(*, ascending: bool=…, kind: SortKind=…, na_position: str=…, **kwargs) -> np.ndarray - changed:
method ArrowExtensionArray.copy() -> ArrowExtensionArrayT → method ArrowExtensionArray.copy() -> Self - changed:
method ArrowExtensionArray.dropna() -> ArrowExtensionArrayT → method ArrowExtensionArray.dropna() -> Self - changed:
method ArrowExtensionArray.factorize(na_sentinel: int | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…) -> tuple[np.ndarray, ExtensionArray] → method ArrowExtensionArray.factorize(use_na_sentinel: bool=…) -> tuple[np.ndarray, ExtensionArray] - changed:
method ArrowExtensionArray.isin(values) -> npt.NDArray[np.bool_] → method ArrowExtensionArray.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - changed:
method ArrowExtensionArray.unique() -> ArrowExtensionArrayT → method ArrowExtensionArray.unique() -> Self - added:
function get_unit_from_pa_dtype(pa_dtype) - added:
function transpose_homogeneous_pyarrow(arrays: Sequence[ArrowExtensionArray]) -> list[ArrowExtensionArray] - added:
method ArrowExtensionArray.all(*, skipna: bool=…, **kwargs) - added:
method ArrowExtensionArray.any(*, skipna: bool=…, **kwargs) - added:
method ArrowExtensionArray.duplicated(keep: Literal['first', 'last', False]=…) -> npt.NDArray[np.bool_] - added:
method ArrowExtensionArray.fillna(value: object | ArrayLike | None=…, method: FillnaOptions | None=…, limit: int | None=…, copy: bool=…) -> Self - added:
method ArrowExtensionArray.interpolate(*, method: InterpolateOptions, axis: int, index, limit, limit_direction, limit_area, copy: bool, **kwargs) -> Self - added:
method ArrowExtensionArray.map(mapper, na_action=…) - added:
method ArrowExtensionArray.round(decimals: int=…, *args, **kwargs) -> Self - added:
method ArrowExtensionArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - added:
method ArrowExtensionArray.to_numpy(dtype: npt.DTypeLike | None=…, copy: bool=…, na_value: object=…) -> np.ndarray - added:
variable ARROW_BIT_WISE_FUNCS
- removed:
class ArrowDtype(StorageExtensionDtype) - removed:
constructor ArrowDtype(pyarrow_dtype: pa.DataType) -> None - removed:
method ArrowDtype.itemsize() -> int - removed:
method ArrowDtype.kind() -> str - removed:
method ArrowDtype.numpy_dtype() -> np.dtype - removed:
property ArrowDtype.name -> str - removed:
property ArrowDtype.type - removed:
static method ArrowDtype.construct_array_type() - removed:
static method ArrowDtype.construct_from_string(string: str) -> ArrowDtype
- changed:
method ArrowIntervalType.to_pandas_dtype() → method ArrowIntervalType.to_pandas_dtype() -> IntervalDtype - changed:
method ArrowPeriodType.to_pandas_dtype() → method ArrowPeriodType.to_pandas_dtype() -> PeriodDtype - added:
function patch_pyarrow()
- removed:
variable ExtensionArrayT - changed:
class ExtensionArraySupportsAnyAll('ExtensionArray') → class ExtensionArraySupportsAnyAll(ExtensionArray) - changed:
method ExtensionArray.argsort(ascending: bool=…, kind: str=…, na_position: str=…, *args, **kwargs) -> np.ndarray → method ExtensionArray.argsort(*, ascending: bool=…, kind: SortKind=…, na_position: str=…, **kwargs) -> np.ndarray - changed:
method ExtensionArray.copy() -> ExtensionArrayT → method ExtensionArray.copy() -> Self - changed:
method ExtensionArray.delete(loc: PositionalIndexer) -> ExtensionArrayT → method ExtensionArray.delete(loc: PositionalIndexer) -> Self - changed:
method ExtensionArray.dropna() -> ExtensionArrayT → method ExtensionArray.dropna() -> Self - changed:
method ExtensionArray.factorize(na_sentinel: int | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…) -> tuple[np.ndarray, ExtensionArray] → method ExtensionArray.factorize(use_na_sentinel: bool=…) -> tuple[np.ndarray, ExtensionArray] - changed:
method ExtensionArray.fillna(value: object | ArrayLike | None=…, method: FillnaOptions | None=…, limit: int | None=…) -> ExtensionArrayT → method ExtensionArray.fillna(value: object | ArrayLike | None=…, method: FillnaOptions | None=…, limit: int | None=…, copy: bool=…) -> Self - changed:
method ExtensionArray.insert(loc: int, item) -> ExtensionArrayT → method ExtensionArray.insert(loc: int, item) -> Self - changed:
method ExtensionArray.isin(values) -> npt.NDArray[np.bool_] → method ExtensionArray.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - changed:
method ExtensionArray.repeat(repeats: int | Sequence[int], axis: int | None=…) -> ExtensionArrayT → method ExtensionArray.repeat(repeats: int | Sequence[int], axis: AxisInt | None=…) -> Self - changed:
method ExtensionArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] | np.intp → method ExtensionArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - changed:
method ExtensionArray.take(indices: TakeIndexer, *, allow_fill: bool=…, fill_value: Any=…) -> ExtensionArrayT → method ExtensionArray.take(indices: TakeIndexer, *, allow_fill: bool=…, fill_value: Any=…) -> Self - changed:
method ExtensionArray.unique() -> ExtensionArrayT → method ExtensionArray.unique() -> Self - added:
method ExtensionArray.duplicated(keep: Literal['first', 'last', False]=…) -> npt.NDArray[np.bool_] - added:
method ExtensionArray.interpolate(*, method: InterpolateOptions, axis: int, index: Index, limit, limit_direction, limit_area, copy: bool, **kwargs) -> Self - added:
method ExtensionArray.map(mapper, na_action=…)
- changed:
field BooleanDtype.name → field BooleanDtype.name: ClassVar[str]
- removed:
method Categorical.is_dtype_equal(other) -> bool - removed:
method Categorical.mode(dropna: bool=…) -> Categorical - removed:
method Categorical.replace(to_replace, value, *, inplace: Literal[False]=…) -> Categorical | (to_replace, value, *, inplace: Literal[True]) -> None - removed:
method Categorical.take_nd(indexer, allow_fill: bool=…, fill_value=…) -> Categorical - removed:
method Categorical.to_dense() -> np.ndarray - removed:
variable CategoricalT - changed:
constructor Categorical(values, categories=…, ordered=…, dtype: Dtype | None=…, fastpath: bool=…, copy: bool=…) -> None → constructor Categorical(values, categories=…, ordered=…, dtype: Dtype | None=…, fastpath: bool | lib.NoDefault=…, copy: bool=…) -> None - changed:
method Categorical.add_categories(new_categories, *, inplace: Literal[False] | NoDefault=…) -> Categorical | (new_categories, *, inplace: Literal[True]) -> None → method Categorical.add_categories(new_categories) -> Self - changed:
method Categorical.argsort(ascending=…, kind=…, **kwargs) → method Categorical.argsort(*, ascending: bool=…, kind: SortKind=…, **kwargs) - changed:
method Categorical.as_ordered(*, inplace: NoDefault | Literal[False]=…) -> Categorical | (*, inplace: Literal[True]) -> None → method Categorical.as_ordered() -> Self - changed:
method Categorical.as_unordered(*, inplace: NoDefault | Literal[False]=…) -> Categorical | (*, inplace: Literal[True]) -> None → method Categorical.as_unordered() -> Self - changed:
method Categorical.isin(values) -> npt.NDArray[np.bool_] → method Categorical.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - changed:
method Categorical.isna() -> np.ndarray → method Categorical.isna() -> npt.NDArray[np.bool_] - changed:
method Categorical.map(mapper) → method Categorical.map(mapper, na_action: Literal['ignore'] | None | lib.NoDefault=…) - changed:
method Categorical.max(*, skipna=…, **kwargs) → method Categorical.max(*, skipna: bool=…, **kwargs) - changed:
method Categorical.min(*, skipna=…, **kwargs) → method Categorical.min(*, skipna: bool=…, **kwargs) - changed:
method Categorical.notna() -> np.ndarray → method Categorical.notna() -> npt.NDArray[np.bool_] - changed:
method Categorical.remove_categories(removals, inplace=…) → method Categorical.remove_categories(removals) -> Self - changed:
method Categorical.remove_unused_categories(*, inplace: Literal[False] | NoDefault=…) -> Categorical | (*, inplace: Literal[True]) -> None → method Categorical.remove_unused_categories() -> Self - changed:
method Categorical.rename_categories(new_categories, *, inplace: Literal[False] | NoDefault=…) -> Categorical | (new_categories, *, inplace: Literal[True]) -> None → method Categorical.rename_categories(new_categories) -> Self - changed:
method Categorical.reorder_categories(new_categories, ordered=…, inplace=…) → method Categorical.reorder_categories(new_categories, ordered=…) -> Self - changed:
method Categorical.set_categories(new_categories, ordered=…, rename=…, inplace=…) → method Categorical.set_categories(new_categories, ordered=…, rename: bool=…) - changed:
method Categorical.set_ordered(value, *, inplace: NoDefault | Literal[False]=…) -> Categorical | (value, *, inplace: Literal[True]) -> None | (value, *, inplace: bool) -> Categorical | None → method Categorical.set_ordered(value: bool) -> Self - changed:
method Categorical.sort_values(*, inplace: Literal[False]=…, ascending: bool=…, na_position: str=…) -> Categorical | (*, inplace: Literal[True], ascending: bool=…, na_position: str=…) -> None → method Categorical.sort_values(*, inplace: Literal[False]=…, ascending: bool=…, na_position: str=…) -> Self | (*, inplace: Literal[True], ascending: bool=…, na_position: str=…) -> None - changed:
method Categorical.unique() → method Categorical.unique() -> Self - changed:
static method Categorical.from_codes(codes, categories=…, ordered=…, dtype: Dtype | None=…) -> Categorical → static method Categorical.from_codes(codes, categories=…, ordered=…, dtype: Dtype | None=…, validate: bool=…) -> Self
- removed:
class InvalidComparison(Exception) - removed:
function maybe_infer_freq(freq) - removed:
function validate_inferred_freq(freq, inferred_freq, freq_infer) -> tuple[BaseOffset | None, bool] - removed:
method DatetimeLikeArrayMixin.copy(order=…) -> DatetimeLikeArrayT - removed:
property DatetimeLikeArrayMixin.freq - removed:
variable DatetimeLikeArrayT - removed:
variable TimelikeOpsT - changed:
constructor DatetimeLikeArrayMixin(data, dtype: Dtype | None=…, freq=…, copy=…) -> None → constructor DatetimeLikeArrayMixin(data, dtype: Dtype | None=…, freq=…, copy: bool=…) -> None - changed:
constructor TimelikeOps(values, dtype=…, freq=…, copy: bool=…) → constructor TimelikeOps(values, dtype=…, freq=…, copy: bool=…) -> None - changed:
function dtype_to_unit(dtype: DatetimeTZDtype | np.dtype) -> str → function dtype_to_unit(dtype: DatetimeTZDtype | np.dtype | ArrowDtype) -> str - changed:
function ensure_arraylike_for_datetimelike(data, copy: bool, cls_name: str) → function ensure_arraylike_for_datetimelike(data, copy: bool, cls_name: str) -> tuple[ArrayLike, bool] - changed:
function validate_periods(periods: None) -> None | (periods: float) -> int → function validate_periods(periods: None) -> None | (periods: int | float) -> int - changed:
method DatetimeLikeArrayMixin.isin(values) -> npt.NDArray[np.bool_] → method DatetimeLikeArrayMixin.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - changed:
method DatetimeLikeArrayMixin.map(mapper) → method DatetimeLikeArrayMixin.map(mapper, na_action=…) - changed:
method DatetimeLikeArrayMixin.max(*, axis: int | None=…, skipna: bool=…, **kwargs) → method DatetimeLikeArrayMixin.max(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) - changed:
method DatetimeLikeArrayMixin.mean(*, skipna: bool=…, axis: int | None=…) → method DatetimeLikeArrayMixin.mean(*, skipna: bool=…, axis: AxisInt | None=…) - changed:
method DatetimeLikeArrayMixin.median(*, axis: int | None=…, skipna: bool=…, **kwargs) → method DatetimeLikeArrayMixin.median(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) - changed:
method DatetimeLikeArrayMixin.min(*, axis: int | None=…, skipna: bool=…, **kwargs) → method DatetimeLikeArrayMixin.min(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) - changed:
method DatetimeLikeArrayMixin.view() -> DatetimeLikeArrayT | (dtype: Literal['M8[ns]']) -> DatetimeArray | (dtype: Literal['m8[ns]']) -> TimedeltaArray | (dtype: Dtype | None=…) -> ArrayLike → method DatetimeLikeArrayMixin.view() -> Self | (dtype: Literal['M8[ns]']) -> DatetimeArray | (dtype: Literal['m8[ns]']) -> TimedeltaArray | (dtype: Dtype | None=…) -> ArrayLike - changed:
method TimelikeOps.all(*, axis: int | None=…, skipna: bool=…) -> bool → method TimelikeOps.all(*, axis: AxisInt | None=…, skipna: bool=…) -> bool - changed:
method TimelikeOps.any(*, axis: int | None=…, skipna: bool=…) -> bool → method TimelikeOps.any(*, axis: AxisInt | None=…, skipna: bool=…) -> bool - changed:
method TimelikeOps.ceil(freq, ambiguous=…, nonexistent=…) → method TimelikeOps.ceil(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - changed:
method TimelikeOps.factorize(na_sentinel: int=…, sort: bool=…) → method TimelikeOps.factorize(use_na_sentinel: bool=…, sort: bool=…) - changed:
method TimelikeOps.floor(freq, ambiguous=…, nonexistent=…) → method TimelikeOps.floor(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - changed:
method TimelikeOps.round(freq, ambiguous=…, nonexistent=…) → method TimelikeOps.round(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
field DatetimeLikeArrayMixin.freq: BaseOffset | None - added:
method TimelikeOps.as_unit(unit: str, round_ok: bool=…) -> Self - added:
method TimelikeOps.copy(order: str=…) -> Self - added:
method TimelikeOps.interpolate(*, method: InterpolateOptions, axis: int, index: Index, limit, limit_direction, limit_area, copy: bool, **kwargs) -> Self - added:
method TimelikeOps.unit() -> str - added:
property TimelikeOps.freq
- removed:
field DatetimeArray.week - removed:
function generate_range(start=…, end=…, periods=…, offset=…) - removed:
function objects_to_datetime64ns(data: np.ndarray, dayfirst, yearfirst, utc=…, errors=…, require_iso8601: bool=…, allow_object: bool=…, allow_mixed: bool=…) - removed:
function sequence_to_datetimes(data, require_iso8601: bool=…) -> DatetimeArray - removed:
function validate_tz_from_dtype(dtype, tz: tzinfo | None) -> tzinfo | None - removed:
method DatetimeArray.to_perioddelta(freq) -> TimedeltaArray - removed:
property DatetimeArray.dtype -> np.dtype | DatetimeTZDtype - removed:
property DatetimeArray.weekofyear - changed:
function tz_to_dtype(tz: tzinfo | None, unit: str=…) → function tz_to_dtype(tz: tzinfo, unit: str=…) -> DatetimeTZDtype | (tz: None, unit: str=…) -> np.dtype[np.datetime64] - changed:
method DatetimeArray.normalize() -> DatetimeArray → method DatetimeArray.normalize() -> Self - changed:
method DatetimeArray.tz_convert(tz) -> DatetimeArray → method DatetimeArray.tz_convert(tz) -> Self - changed:
method DatetimeArray.tz_localize(tz, ambiguous=…, nonexistent=…) -> DatetimeArray → method DatetimeArray.tz_localize(tz, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
function objects_to_datetime64(data: np.ndarray, dayfirst, yearfirst, utc: bool=…, errors: DateTimeErrorChoices=…, allow_object: bool=…, out_unit: str=…) - added:
property DatetimeArray.dtype -> np.dtype[np.datetime64] | DatetimeTZDtype
- removed:
variable FLOAT_STR_TO_DTYPE - changed:
field Float32Dtype.name → field Float32Dtype.name: ClassVar[str] - changed:
field Float64Dtype.name → field Float64Dtype.name: ClassVar[str] - added:
variable NUMPY_FLOAT_TO_DTYPE: dict[np.dtype, FloatingDtype]
- removed:
variable INT_STR_TO_DTYPE: dict[str, IntegerDtype] - changed:
field Int16Dtype.name → field Int16Dtype.name: ClassVar[str] - changed:
field Int32Dtype.name → field Int32Dtype.name: ClassVar[str] - changed:
field Int64Dtype.name → field Int64Dtype.name: ClassVar[str] - changed:
field Int8Dtype.name → field Int8Dtype.name: ClassVar[str] - changed:
field UInt16Dtype.name → field UInt16Dtype.name: ClassVar[str] - changed:
field UInt32Dtype.name → field UInt32Dtype.name: ClassVar[str] - changed:
field UInt64Dtype.name → field UInt64Dtype.name: ClassVar[str] - changed:
field UInt8Dtype.name → field UInt8Dtype.name: ClassVar[str] - added:
variable NUMPY_INT_TO_DTYPE: dict[np.dtype, IntegerDtype]
- removed:
property IntervalArray.left - removed:
property IntervalArray.right - removed:
variable IntervalArrayT - changed:
method IntervalArray.argsort(ascending: bool=…, kind: str=…, na_position: str=…, *args, **kwargs) -> np.ndarray → method IntervalArray.argsort(*, ascending: bool=…, kind: SortKind=…, na_position: str=…, **kwargs) -> np.ndarray - changed:
method IntervalArray.copy() -> IntervalArrayT → method IntervalArray.copy() -> Self - changed:
method IntervalArray.delete(loc) -> IntervalArrayT → method IntervalArray.delete(loc) -> Self - changed:
method IntervalArray.fillna(value=…, method=…, limit=…) -> IntervalArrayT → method IntervalArray.fillna(value=…, method=…, limit: int | None=…, copy: bool=…) -> Self - changed:
method IntervalArray.insert(loc: int, item: Interval) -> IntervalArrayT → method IntervalArray.insert(loc: int, item: Interval) -> Self - changed:
method IntervalArray.isin(values) -> npt.NDArray[np.bool_] → method IntervalArray.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - changed:
method IntervalArray.max(*, axis: int | None=…, skipna: bool=…) -> IntervalOrNA → method IntervalArray.max(*, axis: AxisInt | None=…, skipna: bool=…) -> IntervalOrNA - changed:
method IntervalArray.min(*, axis: int | None=…, skipna: bool=…) -> IntervalOrNA → method IntervalArray.min(*, axis: AxisInt | None=…, skipna: bool=…) -> IntervalOrNA - changed:
method IntervalArray.repeat(repeats: int | Sequence[int], axis: int | None=…) -> IntervalArrayT → method IntervalArray.repeat(repeats: int | Sequence[int], axis: AxisInt | None=…) -> Self - changed:
method IntervalArray.set_closed(closed: IntervalClosedType) -> IntervalArrayT → method IntervalArray.set_closed(closed: IntervalClosedType) -> Self - changed:
method IntervalArray.take(indices, *, allow_fill: bool=…, fill_value=…, axis=…, **kwargs) -> IntervalArrayT → method IntervalArray.take(indices, *, allow_fill: bool=…, fill_value=…, axis=…, **kwargs) -> Self - changed:
method IntervalArray.to_tuples(na_tuple=…) -> np.ndarray → method IntervalArray.to_tuples(na_tuple: bool=…) -> np.ndarray - changed:
static method IntervalArray.from_arrays(left, right, closed: IntervalClosedType | None=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalArrayT → static method IntervalArray.from_arrays(left, right, closed: IntervalClosedType | None=…, copy: bool=…, dtype: Dtype | None=…) -> Self - changed:
static method IntervalArray.from_breaks(breaks, closed: IntervalClosedType | None=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalArrayT → static method IntervalArray.from_breaks(breaks, closed: IntervalClosedType | None=…, copy: bool=…, dtype: Dtype | None=…) -> Self - changed:
static method IntervalArray.from_tuples(data, closed=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalArrayT → static method IntervalArray.from_tuples(data, closed: IntervalClosedType | None=…, copy: bool=…, dtype: Dtype | None=…) -> Self - added:
property IntervalArray.left -> Index - added:
property IntervalArray.right -> Index - added:
variable IntervalSide
- removed:
property BaseMaskedArray.T -> BaseMaskedArrayT - removed:
variable BaseMaskedArrayT - changed:
method BaseMaskedArray.all(*, skipna: bool=…, **kwargs) → method BaseMaskedArray.all(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - changed:
method BaseMaskedArray.any(*, skipna: bool=…, **kwargs) → method BaseMaskedArray.any(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - changed:
method BaseMaskedArray.copy() -> BaseMaskedArrayT → method BaseMaskedArray.copy() -> Self - changed:
method BaseMaskedArray.delete(loc, axis: int=…) -> BaseMaskedArrayT → method BaseMaskedArray.delete(loc, axis: AxisInt=…) -> Self - changed:
method BaseMaskedArray.factorize(na_sentinel: int | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…) -> tuple[np.ndarray, ExtensionArray] → method BaseMaskedArray.factorize(use_na_sentinel: bool=…) -> tuple[np.ndarray, ExtensionArray] - changed:
method BaseMaskedArray.fillna(value=…, method=…, limit=…) -> BaseMaskedArrayT → method BaseMaskedArray.fillna(value=…, method=…, limit: int | None=…, copy: bool=…) -> Self - changed:
method BaseMaskedArray.isin(values) -> BooleanArray → method BaseMaskedArray.isin(values: ArrayLike) -> BooleanArray - changed:
method BaseMaskedArray.max(*, skipna=…, axis: int | None=…, **kwargs) → method BaseMaskedArray.max(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - changed:
method BaseMaskedArray.min(*, skipna=…, axis: int | None=…, **kwargs) → method BaseMaskedArray.min(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - changed:
method BaseMaskedArray.prod(*, skipna=…, min_count=…, axis: int | None=…, **kwargs) → method BaseMaskedArray.prod(*, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…, **kwargs) - changed:
method BaseMaskedArray.ravel(*args, **kwargs) -> BaseMaskedArrayT → method BaseMaskedArray.ravel(*args, **kwargs) -> Self - changed:
method BaseMaskedArray.reshape(*args, **kwargs) -> BaseMaskedArrayT → method BaseMaskedArray.reshape(*args, **kwargs) -> Self - changed:
method BaseMaskedArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] | np.intp → method BaseMaskedArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - changed:
method BaseMaskedArray.sum(*, skipna=…, min_count=…, axis: int | None=…, **kwargs) → method BaseMaskedArray.sum(*, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…, **kwargs) - changed:
method BaseMaskedArray.swapaxes(axis1, axis2) -> BaseMaskedArrayT → method BaseMaskedArray.swapaxes(axis1, axis2) -> Self - changed:
method BaseMaskedArray.take(indexer, *, allow_fill: bool=…, fill_value: Scalar | None=…, axis: int=…) -> BaseMaskedArrayT → method BaseMaskedArray.take(indexer, *, allow_fill: bool=…, fill_value: Scalar | None=…, axis: AxisInt=…) -> Self - changed:
method BaseMaskedArray.unique() -> BaseMaskedArrayT → method BaseMaskedArray.unique() -> Self - added:
function transpose_homogeneous_masked_arrays(masked_arrays: Sequence[BaseMaskedArray]) -> list[BaseMaskedArray] - added:
method BaseMaskedArray.duplicated(keep: Literal['first', 'last', False]=…) -> npt.NDArray[np.bool_] - added:
method BaseMaskedArray.interpolate(*, method: InterpolateOptions, axis: int, index, limit, limit_direction, limit_area, copy: bool, **kwargs) -> FloatingArray - added:
method BaseMaskedArray.map(mapper, na_action=…) - added:
method BaseMaskedArray.mean(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method BaseMaskedArray.std(*, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…, **kwargs) - added:
method BaseMaskedArray.tolist() - added:
method BaseMaskedArray.var(*, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…, **kwargs) - added:
property BaseMaskedArray.T -> Self
- removed:
variable T
- removed:
class PandasArray(OpsMixin, NDArrayBackedExtensionArray, ObjectStringArrayMixin) - removed:
constructor PandasArray(values: np.ndarray | PandasArray, copy: bool=…) -> None - removed:
method PandasArray.all(*, axis: int | None=…, out=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.any(*, axis: int | None=…, out=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.isna() -> np.ndarray - removed:
method PandasArray.kurt(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.max(*, axis: int | None=…, skipna: bool=…, **kwargs) -> Scalar - removed:
method PandasArray.mean(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.median(*, axis: int | None=…, out=…, overwrite_input: bool=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.min(*, axis: int | None=…, skipna: bool=…, **kwargs) -> Scalar - removed:
method PandasArray.prod(*, axis: int | None=…, skipna: bool=…, min_count=…, **kwargs) -> Scalar - removed:
method PandasArray.sem(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, ddof=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.skew(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.std(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, ddof=…, keepdims: bool=…, skipna: bool=…) - removed:
method PandasArray.sum(*, axis: int | None=…, skipna: bool=…, min_count=…, **kwargs) -> Scalar - removed:
method PandasArray.to_numpy(dtype: npt.DTypeLike | None=…, copy: bool=…, na_value: object=…) -> np.ndarray - removed:
method PandasArray.var(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, ddof=…, keepdims: bool=…, skipna: bool=…) - removed:
property PandasArray.dtype -> PandasDtype - added:
class NumpyExtensionArray(OpsMixin, NDArrayBackedExtensionArray, ObjectStringArrayMixin) - added:
constructor NumpyExtensionArray(values: np.ndarray | NumpyExtensionArray, copy: bool=…) -> None - added:
method NumpyExtensionArray.all(*, axis: AxisInt | None=…, out=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.any(*, axis: AxisInt | None=…, out=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.astype(dtype, copy: bool=…) - added:
method NumpyExtensionArray.interpolate(*, method: InterpolateOptions, axis: int, index: Index, limit, limit_direction, limit_area, copy: bool, **kwargs) -> Self - added:
method NumpyExtensionArray.isna() -> np.ndarray - added:
method NumpyExtensionArray.kurt(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.max(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> Scalar - added:
method NumpyExtensionArray.mean(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.median(*, axis: AxisInt | None=…, out=…, overwrite_input: bool=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.min(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> Scalar - added:
method NumpyExtensionArray.prod(*, axis: AxisInt | None=…, skipna: bool=…, min_count: int=…, **kwargs) -> Scalar - added:
method NumpyExtensionArray.sem(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.skew(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.std(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) - added:
method NumpyExtensionArray.sum(*, axis: AxisInt | None=…, skipna: bool=…, min_count: int=…, **kwargs) -> Scalar - added:
method NumpyExtensionArray.to_numpy(dtype: npt.DTypeLike | None=…, copy: bool=…, na_value: object=…) -> np.ndarray - added:
method NumpyExtensionArray.var(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) - added:
property NumpyExtensionArray.dtype -> NumpyEADtype
- removed:
property PeriodArray.is_leap_year -> np.ndarray - changed:
function period_array(data: Sequence[Period | str | None] | AnyArrayLike, freq: str | Tick | None=…, copy: bool=…) -> PeriodArray → function period_array(data: Sequence[Period | str | None] | AnyArrayLike, freq: str | Tick | BaseOffset | None=…, copy: bool=…) -> PeriodArray - changed:
function raise_on_incompatible(left, right) → function raise_on_incompatible(left, right) -> IncompatibleFrequency - changed:
method PeriodArray.asfreq(freq=…, how: str=…) -> PeriodArray → method PeriodArray.asfreq(freq=…, how: str=…) -> Self - changed:
method PeriodArray.fillna(value=…, method=…, limit=…) -> PeriodArray → method PeriodArray.fillna(value=…, method=…, limit: int | None=…, copy: bool=…) -> Self - changed:
method PeriodArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] | np.intp → method PeriodArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - added:
property PeriodArray.freqstr -> str - added:
property PeriodArray.is_leap_year -> npt.NDArray[np.bool_]
- removed:
export SparseDtype
- changed:
method SparseAccessor.to_coo(row_levels=…, column_levels=…, sort_labels=…) → method SparseAccessor.to_coo(row_levels=…, column_levels=…, sort_labels: bool=…) - changed:
static method SparseAccessor.from_coo(A, dense_index=…) -> Series → static method SparseAccessor.from_coo(A, dense_index: bool=…) -> Series
- removed:
function make_sparse(arr: np.ndarray, kind: SparseIndexKind=…, fill_value=…, dtype: NpDtype | None=…) - removed:
variable SparseArrayT - changed:
constructor SparseArray(data, sparse_index=…, index=…, fill_value=…, kind: SparseIndexKind=…, dtype: Dtype | None=…, copy: bool=…) -> None → constructor SparseArray(data, sparse_index=…, fill_value=…, kind: SparseIndexKind=…, dtype: Dtype | None=…, copy: bool=…) -> None - changed:
method SparseArray.any(axis=…, *args, **kwargs) → method SparseArray.any(axis: AxisInt=…, *args, **kwargs) -> bool - changed:
method SparseArray.copy() -> SparseArrayT → method SparseArray.copy() -> Self - changed:
method SparseArray.cumsum(axis: int=…, *args, **kwargs) -> SparseArray → method SparseArray.cumsum(axis: AxisInt=…, *args, **kwargs) -> SparseArray - changed:
method SparseArray.factorize(na_sentinel: int | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…) -> tuple[np.ndarray, SparseArray] → method SparseArray.factorize(use_na_sentinel: bool=…) -> tuple[np.ndarray, SparseArray] - changed:
method SparseArray.fillna(value=…, method: FillnaOptions | None=…, limit: int | None=…) -> SparseArrayT → method SparseArray.fillna(value=…, method: FillnaOptions | None=…, limit: int | None=…, copy: bool=…) -> Self - changed:
method SparseArray.isna() → method SparseArray.isna() -> Self - changed:
method SparseArray.map(mapper) -> SparseArrayT → method SparseArray.map(mapper, na_action=…) -> Self - changed:
method SparseArray.max(*, axis: int | None=…, skipna: bool=…) → method SparseArray.max(*, axis: AxisInt | None=…, skipna: bool=…) - changed:
method SparseArray.mean(axis=…, *args, **kwargs) → method SparseArray.mean(axis: Axis=…, *args, **kwargs) - changed:
method SparseArray.min(*, axis: int | None=…, skipna: bool=…) → method SparseArray.min(*, axis: AxisInt | None=…, skipna: bool=…) - changed:
method SparseArray.searchsorted(v: ArrayLike | object, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] | np.intp → method SparseArray.searchsorted(v: ArrayLike | object, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - changed:
method SparseArray.shift(periods: int=…, fill_value=…) -> SparseArrayT → method SparseArray.shift(periods: int=…, fill_value=…) -> Self - changed:
method SparseArray.sum(axis: int=…, min_count: int=…, skipna: bool=…, *args, **kwargs) -> Scalar → method SparseArray.sum(axis: AxisInt=…, min_count: int=…, skipna: bool=…, *args, **kwargs) -> Scalar - changed:
method SparseArray.take(indices, *, allow_fill: bool=…, fill_value=…) -> SparseArrayT → method SparseArray.take(indices, *, allow_fill: bool=…, fill_value=…) -> Self - changed:
method SparseArray.unique() -> SparseArrayT → method SparseArray.unique() -> Self - changed:
static method SparseArray.from_spmatrix(data: spmatrix) -> SparseArrayT → static method SparseArray.from_spmatrix(data: spmatrix) -> Self - added:
method SparseArray.duplicated(keep: Literal['first', 'last', False]=…) -> npt.NDArray[np.bool_]
- removed:
class SparseDtype(ExtensionDtype) - removed:
constructor SparseDtype(dtype: Dtype=…, fill_value: Any=…) -> None - removed:
method SparseDtype.update_dtype(dtype) -> SparseDtype - removed:
property SparseDtype.fill_value - removed:
property SparseDtype.kind -> str - removed:
property SparseDtype.name -> str - removed:
property SparseDtype.subtype - removed:
property SparseDtype.type - removed:
static method SparseDtype.construct_array_type() -> type_t[SparseArray] - removed:
static method SparseDtype.construct_from_string(string: str) -> SparseDtype - removed:
static method SparseDtype.is_dtype(dtype: object) -> bool
- removed:
field StringDtype.name - removed:
property StringDtype.na_value -> libmissing.NAType - changed:
class StringArray(BaseStringArray, PandasArray) → class StringArray(BaseStringArray, NumpyExtensionArray) - changed:
constructor StringArray(values, copy=…) -> None → constructor StringArray(values, copy: bool=…) -> None - changed:
constructor StringDtype(storage=…) -> None → constructor StringDtype(storage: str | None=…, na_value: libmissing.NAType | float=…) -> None - changed:
static method StringDtype.construct_from_string(string) → static method StringDtype.construct_from_string(string) -> Self - added:
class StringArrayNumpySemantics(StringArray) - added:
field BaseStringArray.dtype: StringDtype - added:
method BaseStringArray.tolist() - added:
method BaseStringArray.view(dtype: Dtype | None=…) -> ArrayLike - added:
method StringArray.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - added:
method StringArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - added:
method StringArray.sum(*, axis: AxisInt | None=…, skipna: bool=…, min_count: int=…, **kwargs) -> Scalar - added:
property StringDtype.na_value -> libmissing.NAType | float - added:
property StringDtype.name -> str
- removed:
method ArrowStringArray.to_numpy(dtype: npt.DTypeLike | None=…, copy: bool=…, na_value=…) -> np.ndarray - changed:
class ArrowStringArray(ArrowExtensionArray, BaseStringArray, ObjectStringArrayMixin) → class ArrowStringArray(ObjectStringArrayMixin, ArrowExtensionArray, BaseStringArray) - changed:
method ArrowStringArray.isin(values) -> npt.NDArray[np.bool_] → method ArrowStringArray.isin(values: ArrayLike) -> npt.NDArray[np.bool_] - added:
class ArrowStringArrayNumpySemantics(ArrowStringArray) - added:
method ArrowStringArray.value_counts(dropna: bool=…) -> Series
- removed:
function ints_to_td64ns(data, unit=…) - removed:
property TimedeltaArray.dtype -> np.dtype - changed:
function sequence_to_td64ns(data, copy: bool=…, unit=…, errors=…) -> tuple[np.ndarray, Tick | None] → function sequence_to_td64ns(data, copy: bool=…, unit=…, errors: DateTimeErrorChoices=…) -> tuple[np.ndarray, Tick | None] - changed:
method TimedeltaArray.std(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) → method TimedeltaArray.std(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) - changed:
method TimedeltaArray.sum(*, axis: int | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, initial=…, skipna: bool=…, min_count: int=…) → method TimedeltaArray.sum(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, initial=…, skipna: bool=…, min_count: int=…) - added:
field TimedeltaArray.days_docstring - added:
field TimedeltaArray.microseconds_docstring - added:
field TimedeltaArray.nanoseconds_docstring - added:
field TimedeltaArray.seconds_docstring - added:
property TimedeltaArray.dtype -> np.dtype[np.timedelta64]
- removed:
method IndexOpsMixin.isna() -> npt.NDArray[np.bool_] - removed:
method IndexOpsMixin.max(axis=…, skipna: bool=…, *args, **kwargs) - removed:
method IndexOpsMixin.min(axis=…, skipna: bool=…, *args, **kwargs) - removed:
property IndexOpsMixin.is_monotonic -> bool - removed:
property IndexOpsMixin.ndim -> Literal[1] - changed:
method IndexOpsMixin.argmax(axis=…, skipna: bool=…, *args, **kwargs) -> int → method IndexOpsMixin.argmax(axis: AxisInt | None=…, skipna: bool=…, *args, **kwargs) -> int - changed:
method IndexOpsMixin.argmin(axis=…, skipna=…, *args, **kwargs) -> int → method IndexOpsMixin.argmin(axis: AxisInt | None=…, skipna: bool=…, *args, **kwargs) -> int - changed:
method IndexOpsMixin.drop_duplicates(keep=…) → method IndexOpsMixin.drop_duplicates(*, keep: DropKeep=…) - changed:
method IndexOpsMixin.factorize(sort: bool=…, na_sentinel: int | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…) → method IndexOpsMixin.factorize(sort: bool=…, use_na_sentinel: bool=…) -> tuple[npt.NDArray[np.intp], Index] - changed:
method IndexOpsMixin.transpose(*args, **kwargs) -> _T → method IndexOpsMixin.transpose(*args, **kwargs) -> Self - added:
property IndexOpsMixin.ndim -> int
- removed:
function deprecate_numeric_only_default(cls: type, name: str, deprecate_none: bool=…) -> None - removed:
function resolve_numeric_only(numeric_only: bool | None | lib.NoDefault) -> bool - changed:
function cast_scalar_indexer(val, warn_float: bool=…) → function cast_scalar_indexer(val) - changed:
function random_state(state: np.random.Generator) -> np.random.Generator | (state: int | ArrayLike | np.random.BitGenerator | np.random.RandomState | None) -> np.random.RandomState → function random_state(state: np.random.Generator) -> np.random.Generator | (state: int | np.ndarray | np.random.BitGenerator | np.random.RandomState | None) -> np.random.RandomState - changed:
function temp_setattr(obj, attr: str, value) -> Iterator[None] → function temp_setattr(obj, attr: str, value, condition: bool=…) -> Generator[None, None, None] - added:
function is_empty_slice(obj) -> bool
- removed:
variable NUMEXPR_VERSION
- changed:
function eval(expr: str | BinOp, parser: str=…, engine: str | None=…, truediv=…, local_dict=…, global_dict=…, resolvers=…, level=…, target=…, inplace=…) → function eval(expr: str | BinOp, parser: str=…, engine: str | None=…, local_dict=…, global_dict=…, resolvers=…, level: int=…, target=…, inplace: bool=…)
- removed:
method BaseExprVisitor.visit_Div(node, **kwargs) - changed:
field BaseExprVisitor.const_type: type[Term] → field BaseExprVisitor.const_type: ClassVar[type[Term]] - changed:
field BaseExprVisitor.term_type → field BaseExprVisitor.term_type: ClassVar[type[Term]] - changed:
method BaseExprVisitor.visit_List(node, **kwargs) → method BaseExprVisitor.visit_List(node, **kwargs) -> Term - changed:
method BaseExprVisitor.visit_Name(node, **kwargs) → method BaseExprVisitor.visit_Name(node, **kwargs) -> Term - changed:
method BaseExprVisitor.visit_Slice(node, **kwargs) → method BaseExprVisitor.visit_Slice(node, **kwargs) -> slice - changed:
method BaseExprVisitor.visit_Str(node, **kwargs) → method BaseExprVisitor.visit_Str(node, **kwargs) -> Term - changed:
method BaseExprVisitor.visit_Subscript(node, **kwargs) → method BaseExprVisitor.visit_Subscript(node, **kwargs) -> Term
- changed:
function set_use_numexpr(v=…) -> None → function set_use_numexpr(v: bool=…) -> None - changed:
function where(cond, a, b, use_numexpr=…) → function where(cond, a, b, use_numexpr: bool=…)
- removed:
class Div(BinOp) - removed:
constructor Constant(value, env, side=…, encoding=…) -> None - removed:
constructor Div(lhs, rhs) -> None
- changed:
constructor Constant(value, env: PyTablesScope, side=…, encoding=…) -> None → constructor Constant(name, env: PyTablesScope, side=…, encoding=…) -> None - changed:
field PyTablesExprVisitor.const_type → field PyTablesExprVisitor.const_type: ClassVar[type[ops.Term]] - changed:
field PyTablesExprVisitor.term_type → field PyTablesExprVisitor.term_type: ClassVar[type[Term]] - changed:
method BinOp.convert_values() → method BinOp.convert_values() -> None - changed:
method ConditionBinOp.evaluate() → method ConditionBinOp.evaluate() -> Self | None - changed:
method FilterBinOp.evaluate() → method FilterBinOp.evaluate() -> Self | None - changed:
method FilterBinOp.invert() → method FilterBinOp.invert() -> Self - changed:
method JointConditionBinOp.evaluate() → method JointConditionBinOp.evaluate() -> Self - changed:
method JointFilterBinOp.evaluate() → method JointFilterBinOp.evaluate() -> Self - changed:
method PyTablesExprVisitor.visit_Subscript(node, **kwargs) → method PyTablesExprVisitor.visit_Subscript(node, **kwargs) -> ops.Term - changed:
method PyTablesExprVisitor.visit_UnaryOp(node, **kwargs) → method PyTablesExprVisitor.visit_UnaryOp(node, **kwargs) -> ops.Term | UnaryOp | None
- changed:
function ensure_scope(level: int, global_dict=…, local_dict=…, resolvers=…, target=…, **kwargs) -> Scope → function ensure_scope(level: int, global_dict=…, local_dict=…, resolvers=…, target=…) -> Scope - added:
class DeepChainMap(ChainMap[_KT, _VT])
- removed:
variable pc_latex_escape - removed:
variable pc_latex_longtable - removed:
variable pc_latex_multicolumn - removed:
variable pc_latex_multicolumn_format - removed:
variable pc_latex_multirow - removed:
variable pc_latex_repr_doc - removed:
variable use_inf_as_null_doc - added:
function is_valid_string_storage(value: Any) -> None
- removed:
function create_series_with_explicit_dtype(data: Any=…, index: ArrayLike | Index | None=…, dtype: Dtype | None=…, name: str | None=…, copy: bool=…, fastpath: bool=…, dtype_if_empty: Dtype=…) -> Series - removed:
function is_empty_data(data: Any) -> bool - changed:
function sanitize_array(data, index: Index | None, dtype: DtypeObj | None=…, copy: bool=…, raise_cast_failure: bool=…, *, allow_2d: bool=…) -> ArrayLike → function sanitize_array(data, index: Index | None, dtype: DtypeObj | None=…, copy: bool=…, *, allow_2d: bool=…) -> ArrayLike
- removed:
class DataFrameDescriber(NDFrameDescriberAbstract) - removed:
class NDFrameDescriberAbstract(ABC) - removed:
class SeriesDescriber(NDFrameDescriberAbstract) - removed:
constructor DataFrameDescriber(obj: DataFrame, *, include: str | Sequence[str] | None, exclude: str | Sequence[str] | None, datetime_is_numeric: bool) -> None - removed:
constructor NDFrameDescriberAbstract(obj: DataFrame | Series, datetime_is_numeric: bool) -> None - removed:
field SeriesDescriber.obj: Series - removed:
function describe_categorical_1d(data: Series, percentiles_ignored: Sequence[float]) -> Series - removed:
function describe_ndframe(*, obj: NDFrameT, include: str | Sequence[str] | None, exclude: str | Sequence[str] | None, datetime_is_numeric: bool, percentiles: Sequence[float] | np.ndarray | None) -> NDFrameT - removed:
function describe_numeric_1d(series: Series, percentiles: Sequence[float]) -> Series - removed:
function describe_timestamp_1d(data: Series, percentiles: Sequence[float]) -> Series - removed:
function describe_timestamp_as_categorical_1d(data: Series, percentiles_ignored: Sequence[float]) -> Series - removed:
function refine_percentiles(percentiles: Sequence[float] | np.ndarray | None) -> np.ndarray[Any, np.dtype[np.float64]] - removed:
function reorder_columns(ldesc: Sequence[Series]) -> list[Hashable] - removed:
function select_describe_func(data: Series, datetime_is_numeric: bool) -> Callable - removed:
method DataFrameDescriber.describe(percentiles: Sequence[float] | np.ndarray) -> DataFrame - removed:
method NDFrameDescriberAbstract.describe(percentiles: Sequence[float] | np.ndarray) -> DataFrame | Series - removed:
method SeriesDescriber.describe(percentiles: Sequence[float] | np.ndarray) -> Series
- removed:
export is_categorical - removed:
export is_extension_type - added:
export is_any_real_numeric_dtype
- removed:
function astype_dt64_to_dt64tz(values: ArrayLike, dtype: DtypeObj, copy: bool, via_utc: bool=…) -> DatetimeArray - removed:
function astype_nansafe(arr: np.ndarray, dtype: np.dtype, copy: bool=…, skipna: bool=…) -> np.ndarray | (arr: np.ndarray, dtype: ExtensionDtype, copy: bool=…, skipna: bool=…) -> ExtensionArray - removed:
function astype_td64_unit_conversion(values: np.ndarray, dtype: np.dtype, copy: bool) -> np.ndarray - added:
function astype_is_view(dtype: DtypeObj, new_dtype: DtypeObj) -> bool
- changed:
constructor StorageExtensionDtype(storage=…) -> None → constructor StorageExtensionDtype(storage: str | None=…) -> None - changed:
method ExtensionDtype.empty(shape: Shape) -> type_t[ExtensionArray] → method ExtensionDtype.empty(shape: Shape) -> ExtensionArray - changed:
static method ExtensionDtype.construct_from_string(string: str) -> ExtensionDtypeT → static method ExtensionDtype.construct_from_string(string: str) -> Self - added:
method ExtensionDtype.index_class() -> type_t[Index]
- removed:
class LossySetitemError(Exception) - removed:
function maybe_cast_to_extension_array(cls: type[ExtensionArray], obj: ArrayLike, dtype: ExtensionDtype | None=…) -> ArrayLike - removed:
function maybe_upcast(values: NumpyArrayT, fill_value: Scalar=…, copy: bool=…) -> tuple[NumpyArrayT, Scalar] - removed:
function sanitize_to_nanoseconds(values: np.ndarray, copy: bool=…) -> np.ndarray - removed:
function soft_convert_objects(values: np.ndarray, datetime: bool=…, numeric: bool=…, timedelta: bool=…, period: bool=…, copy: bool=…) -> ArrayLike - changed:
function common_dtype_categorical_compat(objs: list[Index | ArrayLike], dtype: DtypeObj) -> DtypeObj → function common_dtype_categorical_compat(objs: Sequence[Index | ArrayLike], dtype: DtypeObj) -> DtypeObj - changed:
function construct_1d_object_array_from_listlike(values: Sized) -> np.ndarray → function construct_1d_object_array_from_listlike(values: Collection) -> np.ndarray - changed:
function convert_dtypes(input_array: ArrayLike, convert_string: bool=…, convert_integer: bool=…, convert_boolean: bool=…, convert_floating: bool=…) -> DtypeObj → function convert_dtypes(input_array: ArrayLike, convert_string: bool=…, convert_integer: bool=…, convert_boolean: bool=…, convert_floating: bool=…, infer_objects: bool=…, dtype_backend: Literal['numpy_nullable', 'pyarrow']=…) -> DtypeObj - changed:
function find_result_type(left: ArrayLike, right: Any) -> DtypeObj → function find_result_type(left_dtype: DtypeObj, right: Any) -> DtypeObj - changed:
function infer_dtype_from(val, pandas_dtype: bool=…) -> tuple[DtypeObj, Any] → function infer_dtype_from(val) -> tuple[DtypeObj, Any] - changed:
function infer_dtype_from_array(arr, pandas_dtype: bool=…) -> tuple[DtypeObj, ArrayLike] → function infer_dtype_from_array(arr) -> tuple[DtypeObj, ArrayLike] - changed:
function infer_dtype_from_scalar(val, pandas_dtype: bool=…) -> tuple[DtypeObj, Any] → function infer_dtype_from_scalar(val) -> tuple[DtypeObj, Any] - changed:
function maybe_box_native(value: Scalar) -> Scalar → function maybe_box_native(value: Scalar | None | NAType) -> Scalar | None | NAType - changed:
function maybe_cast_to_datetime(value: ExtensionArray | np.ndarray | list, dtype: DtypeObj | None) -> ExtensionArray | np.ndarray → function maybe_cast_to_datetime(value: np.ndarray | list, dtype: np.dtype) -> ExtensionArray | np.ndarray - changed:
function maybe_cast_to_integer_array(arr: list | np.ndarray, dtype: np.dtype, copy: bool=…) -> np.ndarray → function maybe_cast_to_integer_array(arr: list | np.ndarray, dtype: np.dtype) -> np.ndarray - changed:
function maybe_infer_to_datetimelike(value: np.ndarray) -> np.ndarray | DatetimeArray | TimedeltaArray | PeriodArray | IntervalArray → function maybe_infer_to_datetimelike(value: npt.NDArray[np.object_], convert_to_nullable_dtype: bool=…) -> np.ndarray | DatetimeArray | TimedeltaArray | PeriodArray | IntervalArray - added:
function maybe_upcast_numeric_to_64bit(arr: NumpyIndexT) -> NumpyIndexT - added:
function np_can_cast_scalar(element: Scalar, dtype: np.dtype) -> bool - added:
function np_find_common_type(*dtypes: np.dtype) -> np.dtype
- removed:
function classes_and_not_datetimelike(*klasses) -> Callable - removed:
function ensure_float(arr) - removed:
function get_dtype(arr_or_dtype) -> DtypeObj - removed:
function is_1d_only_ea_obj(obj: Any) -> bool - removed:
function is_any_int_dtype(arr_or_dtype) -> bool - removed:
function is_categorical(arr) -> bool - removed:
function is_datetime_or_timedelta_dtype(arr_or_dtype) -> bool - removed:
function is_datetimelike_v_numeric(a, b) -> bool - removed:
function is_extension_type(arr) -> bool - removed:
function is_numeric_v_string_like(a: ArrayLike, b) -> bool - changed:
function needs_i8_conversion(arr_or_dtype) -> bool → function needs_i8_conversion(dtype: DtypeObj | None) -> bool - added:
function is_any_real_numeric_dtype(arr_or_dtype) -> bool
- removed:
function cast_to_common_type(arr: ArrayLike, dtype: DtypeObj) -> ArrayLike - changed:
function concat_compat(to_concat, axis: int=…, ea_compat_axis: bool=…) → function concat_compat(to_concat: Sequence[ArrayLike], axis: AxisInt=…, ea_compat_axis: bool=…) -> ArrayLike
- removed:
class PandasDtype(ExtensionDtype) - removed:
constructor PandasDtype(dtype: npt.DTypeLike | PandasDtype | None) -> None - removed:
field BaseMaskedDtype.name: str - removed:
field DatetimeTZDtype.base - removed:
property IntervalDtype.closed - removed:
property PandasDtype.itemsize -> int - removed:
property PandasDtype.kind -> str - removed:
property PandasDtype.name -> str - removed:
property PandasDtype.numpy_dtype -> np.dtype - removed:
property PandasDtype.type -> type[np.generic] - removed:
property PeriodDtype.freq - removed:
static method PandasDtype.construct_array_type() -> type_t[PandasArray] - removed:
static method PandasDtype.construct_from_string(string: str) -> PandasDtype - changed:
class PeriodDtype(dtypes.PeriodDtypeBase, PandasExtensionDtype) → class PeriodDtype(PeriodDtypeBase, PandasExtensionDtype) - changed:
method DatetimeTZDtype.str() → method DatetimeTZDtype.str() -> str - added:
class ArrowDtype(StorageExtensionDtype) - added:
class NumpyEADtype(ExtensionDtype) - added:
class SparseDtype(ExtensionDtype) - added:
constructor ArrowDtype(pyarrow_dtype: pa.DataType) -> None - added:
constructor IntervalDtype(subtype=…, closed: IntervalClosedType | None=…) -> None - added:
constructor NumpyEADtype(dtype: npt.DTypeLike | NumpyEADtype | None) -> None - added:
constructor SparseDtype(dtype: Dtype=…, fill_value: Any=…) -> None - added:
method ArrowDtype.itemsize() -> int - added:
method ArrowDtype.kind() -> str - added:
method ArrowDtype.numpy_dtype() -> np.dtype - added:
method CategoricalDtype.index_class() -> type_t[CategoricalIndex] - added:
method DatetimeTZDtype.base() -> DtypeObj - added:
method DatetimeTZDtype.index_class() -> type_t[DatetimeIndex] - added:
method IntervalDtype.index_class() -> type_t[IntervalIndex] - added:
method PeriodDtype.index_class() -> type_t[PeriodIndex] - added:
method SparseDtype.update_dtype(dtype) -> SparseDtype - added:
property ArrowDtype.name -> str - added:
property ArrowDtype.type - added:
property IntervalDtype.closed -> IntervalClosedType - added:
property NumpyEADtype.itemsize -> int - added:
property NumpyEADtype.kind -> str - added:
property NumpyEADtype.name -> str - added:
property NumpyEADtype.numpy_dtype -> np.dtype - added:
property NumpyEADtype.type -> type[np.generic] - added:
property PeriodDtype.freq -> BaseOffset - added:
property SparseDtype.fill_value - added:
property SparseDtype.kind -> str - added:
property SparseDtype.name -> str - added:
property SparseDtype.subtype - added:
property SparseDtype.type - added:
static method ArrowDtype.construct_array_type() -> type_t[ArrowExtensionArray] - added:
static method ArrowDtype.construct_from_string(string: str) -> ArrowDtype - added:
static method NumpyEADtype.construct_array_type() -> type_t[NumpyExtensionArray] - added:
static method NumpyEADtype.construct_from_string(string: str) -> NumpyEADtype - added:
static method SparseDtype.construct_array_type() -> type_t[SparseArray] - added:
static method SparseDtype.construct_from_string(string: str) -> SparseDtype - added:
static method SparseDtype.is_dtype(dtype: object) -> bool
- removed:
variable ABCFloat64Index - removed:
variable ABCInt64Index - removed:
variable ABCPandasArray - removed:
variable ABCUInt64Index - added:
variable ABCNumpyExtensionArray
- removed:
function is_inferred_bool_dtype(arr: ArrayLike) -> bool - changed:
function is_dataclass(item) → function is_dataclass(item) -> bool - changed:
function is_hashable(obj) -> bool → function is_hashable(obj) -> TypeGuard[Hashable] - changed:
function is_number(obj) -> bool → function is_number(obj) -> TypeGuard[Number | np.number] - changed:
function is_re(obj) -> bool → function is_re(obj) -> TypeGuard[Pattern]
- removed:
function isna_compat(arr, fill_value=…) -> bool - changed:
function isna(obj: Scalar) -> bool | (obj: ArrayLike | Index | list) -> npt.NDArray[np.bool_] | (obj: NDFrameT) -> NDFrameT | (obj: NDFrameT | ArrayLike | Index | list) -> NDFrameT | npt.NDArray[np.bool_] | (obj: object) -> bool | npt.NDArray[np.bool_] | NDFrame → function isna(obj: Scalar | Pattern) -> bool | (obj: ArrayLike | Index | list) -> npt.NDArray[np.bool_] | (obj: NDFrameT) -> NDFrameT | (obj: NDFrameT | ArrayLike | Index | list) -> NDFrameT | npt.NDArray[np.bool_] | (obj: object) -> bool | npt.NDArray[np.bool_] | NDFrame - changed:
function remove_na_arraylike(arr) → function remove_na_arraylike(arr: Series | Index | np.ndarray) - added:
function construct_1d_array_from_inferred_fill_value(value: object, length: int) -> ArrayLike
- changed:
constructor Flags(obj, *, allows_duplicate_labels) -> None → constructor Flags(obj: NDFrame, *, allows_duplicate_labels: bool) -> None
- removed:
method DataFrame.align(other: DataFrame, join: Literal['outer', 'inner', 'left', 'right']=…, axis: Axis | None=…, level: Level=…, copy: bool=…, fill_value=…, method: FillnaOptions | None=…, limit: int | None=…, fill_axis: Axis=…, broadcast_axis: Axis | None=…) -> DataFrame - removed:
method DataFrame.append(other, ignore_index: bool=…, verify_integrity: bool=…, sort: bool=…) -> DataFrame - removed:
method DataFrame.asfreq(freq: Frequency, method: FillnaOptions | None=…, how: str | None=…, normalize: bool=…, fill_value: Hashable=…) -> DataFrame - removed:
method DataFrame.bfill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, downcast=…) -> DataFrame | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast=…) -> None | (*, axis: None | Axis=…, inplace: bool=…, limit: None | int=…, downcast=…) -> DataFrame | None - removed:
method DataFrame.clip(lower: float | None=…, upper: float | None=…, axis: Axis | None=…, inplace: bool=…, *args, **kwargs) -> DataFrame | None - removed:
method DataFrame.ffill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, downcast: dict | None=…) -> DataFrame | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast: dict | None=…) -> None | (*, axis: None | Axis=…, inplace: bool=…, limit: None | int=…, downcast: dict | None=…) -> DataFrame | None - removed:
method DataFrame.fillna(value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[False]=…, limit: int | None=…, downcast: dict | None=…) -> DataFrame | (value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[True], limit: int | None=…, downcast: dict | None=…) -> N… - removed:
method DataFrame.interpolate(method: str=…, axis: Axis=…, limit: int | None=…, inplace: bool=…, limit_direction: str | None=…, limit_area: str | None=…, downcast: str | None=…, **kwargs) -> DataFrame | None - removed:
method DataFrame.iteritems() -> Iterable[tuple[Hashable, Series]] - removed:
method DataFrame.lookup(row_labels: Sequence[IndexLabel], col_labels: Sequence[IndexLabel]) -> np.ndarray - removed:
method DataFrame.mask(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> DataFrame | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> None | (cond, other=…, *, inplace: bool=…, axis: Ax… - removed:
method DataFrame.replace(to_replace=…, value=…, *, inplace: Literal[False]=…, limit: int | None=…, regex: bool=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> DataFrame | (to_replace=…, value=…, *, inplace: Literal[True], limit: int | None=…, regex: bool=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> None - removed:
method DataFrame.resample(rule, axis: Axis=…, closed: str | None=…, label: str | None=…, convention: str=…, kind: str | None=…, loffset=…, base: int | None=…, on: Level=…, level: Level=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys: bool | lib.NoDefault=…) -> Resampler - removed:
method DataFrame.where(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> DataFrame | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> None | (cond, other=…, *, inplace: bool=…, axis: A… - changed:
method DataFrame.any(*, axis: Axis=…, bool_only: bool | None=…, skipna: bool=…, level: None=…, **kwargs) -> Series | (*, axis: Axis=…, bool_only: bool | None=…, skipna: bool=…, level: Level, **kwargs) -> DataFrame | Series → method DataFrame.any(*, axis: Axis | None=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool - changed:
method DataFrame.apply(func: AggFuncType, axis: Axis=…, raw: bool=…, result_type: Literal['expand', 'reduce', 'broadcast'] | None=…, args=…, **kwargs) → method DataFrame.apply(func: AggFuncType, axis: Axis=…, raw: bool=…, result_type: Literal['expand', 'reduce', 'broadcast'] | None=…, args=…, by_row: Literal[False, 'compat']=…, engine: Literal['python', 'numba']=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) - changed:
method DataFrame.applymap(func: PythonFuncType, na_action: str | None=…, **kwargs) -> DataFrame → method DataFrame.applymap(func: PythonFuncType, na_action: NaAction | None=…, **kwargs) -> DataFrame - changed:
method DataFrame.corr(method: str | Callable[[np.ndarray, np.ndarray], float]=…, min_periods: int=…, numeric_only: bool | lib.NoDefault=…) -> DataFrame → method DataFrame.corr(method: CorrelationMethod=…, min_periods: int=…, numeric_only: bool=…) -> DataFrame - changed:
method DataFrame.corrwith(other: DataFrame | Series, axis: Axis=…, drop: bool=…, method: Literal['pearson', 'kendall', 'spearman'] | Callable[[np.ndarray, np.ndarray], float]=…, numeric_only: bool | lib.NoDefault=…) -> Series → method DataFrame.corrwith(other: DataFrame | Series, axis: Axis=…, drop: bool=…, method: CorrelationMethod=…, numeric_only: bool=…) -> Series - changed:
method DataFrame.count(axis: Axis=…, level: Level=…, numeric_only: bool=…) → method DataFrame.count(axis: Axis=…, numeric_only: bool=…) - changed:
method DataFrame.cov(min_periods: int | None=…, ddof: int | None=…, numeric_only: bool | lib.NoDefault=…) -> DataFrame → method DataFrame.cov(min_periods: int | None=…, ddof: int | None=…, numeric_only: bool=…) -> DataFrame - changed:
method DataFrame.drop_duplicates(subset: Hashable | Sequence[Hashable] | None=…, keep: Literal['first', 'last', False]=…, inplace: bool=…, ignore_index: bool=…) -> DataFrame | None → method DataFrame.drop_duplicates(subset: Hashable | Sequence[Hashable] | None=…, *, keep: DropKeep=…, inplace: Literal[True], ignore_index: bool=…) -> None | (subset: Hashable | Sequence[Hashable] | None=…, *, keep: DropKeep=…, inplace: Literal[False]=…, ignore_index: bool=…) -> DataFrame | (subset: Hashable | Sequence[Hashable] | None=…, *, keep: DropKeep=…, inplace: bool=…, ignore_index: bool=…… - changed:
method DataFrame.dropna(*, axis: Axis=…, how: str | NoDefault=…, thresh: int | NoDefault=…, subset: IndexLabel=…, inplace: Literal[False]=…) -> DataFrame | (*, axis: Axis=…, how: str | NoDefault=…, thresh: int | NoDefault=…, subset: IndexLabel=…, inplace: Literal[True]) -> None → method DataFrame.dropna(*, axis: Axis=…, how: AnyAll | lib.NoDefault=…, thresh: int | lib.NoDefault=…, subset: IndexLabel=…, inplace: Literal[False]=…, ignore_index: bool=…) -> DataFrame | (*, axis: Axis=…, how: AnyAll | lib.NoDefault=…, thresh: int | lib.NoDefault=…, subset: IndexLabel=…, inplace: Literal[True], ignore_index: bool=…) -> None - changed:
method DataFrame.duplicated(subset: Hashable | Sequence[Hashable] | None=…, keep: Literal['first', 'last', False]=…) -> Series → method DataFrame.duplicated(subset: Hashable | Sequence[Hashable] | None=…, keep: DropKeep=…) -> Series - changed:
method DataFrame.groupby(by=…, axis: Axis=…, level: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool | lib.NoDefault=…, squeeze: bool | lib.NoDefault=…, observed: bool=…, dropna: bool=…) -> DataFrameGroupBy → method DataFrame.groupby(by=…, axis: Axis | lib.NoDefault=…, level: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool | lib.NoDefault=…, dropna: bool=…) -> DataFrameGroupBy - changed:
method DataFrame.info(verbose: bool | None=…, buf: WriteBuffer[str] | None=…, max_cols: int | None=…, memory_usage: bool | str | None=…, show_counts: bool | None=…, null_counts: bool | None=…) -> None → method DataFrame.info(verbose: bool | None=…, buf: WriteBuffer[str] | None=…, max_cols: int | None=…, memory_usage: bool | str | None=…, show_counts: bool | None=…) -> None - changed:
method DataFrame.join(other: DataFrame | Series | list[DataFrame | Series], on: IndexLabel | None=…, how: str=…, lsuffix: str=…, rsuffix: str=…, sort: bool=…, validate: str | None=…) -> DataFrame → method DataFrame.join(other: DataFrame | Series | Iterable[DataFrame | Series], on: IndexLabel | None=…, how: MergeHow=…, lsuffix: str=…, rsuffix: str=…, sort: bool=…, validate: JoinValidate | None=…) -> DataFrame - changed:
method DataFrame.melt(id_vars=…, value_vars=…, var_name=…, value_name=…, col_level: Level=…, ignore_index: bool=…) -> DataFrame → method DataFrame.melt(id_vars=…, value_vars=…, var_name=…, value_name: Hashable=…, col_level: Level | None=…, ignore_index: bool=…) -> DataFrame - changed:
method DataFrame.merge(right: DataFrame | Series, how: str=…, on: IndexLabel | None=…, left_on: IndexLabel | None=…, right_on: IndexLabel | None=…, left_index: bool=…, right_index: bool=…, sort: bool=…, suffixes: Suffixes=…, copy: bool=…, indicator: bool=…, validate: str | None=…) -> DataFrame → method DataFrame.merge(right: DataFrame | Series, how: MergeHow=…, on: IndexLabel | AnyArrayLike | None=…, left_on: IndexLabel | AnyArrayLike | None=…, right_on: IndexLabel | AnyArrayLike | None=…, left_index: bool=…, right_index: bool=…, sort: bool=…, suffixes: Suffixes=…, copy: bool | None=…, indicator: str | bool=…, validate: MergeValidate | None=…) -> DataFrame - changed:
method DataFrame.nlargest(n: int, columns: IndexLabel, keep: str=…) -> DataFrame → method DataFrame.nlargest(n: int, columns: IndexLabel, keep: NsmallestNlargestKeep=…) -> DataFrame - changed:
method DataFrame.nsmallest(n: int, columns: IndexLabel, keep: str=…) -> DataFrame → method DataFrame.nsmallest(n: int, columns: IndexLabel, keep: NsmallestNlargestKeep=…) -> DataFrame - changed:
method DataFrame.pivot(index=…, columns=…, values=…) -> DataFrame → method DataFrame.pivot(*, columns, index=…, values=…) -> DataFrame - changed:
method DataFrame.pivot_table(values=…, index=…, columns=…, aggfunc=…, fill_value=…, margins=…, dropna=…, margins_name=…, observed=…, sort=…) -> DataFrame → method DataFrame.pivot_table(values=…, index=…, columns=…, aggfunc: AggFuncType=…, fill_value=…, margins: bool=…, dropna: bool=…, margins_name: Level=…, observed: bool | lib.NoDefault=…, sort: bool=…) -> DataFrame - changed:
method DataFrame.quantile(q: float=…, axis: Axis=…, numeric_only: bool | lib.NoDefault=…, interpolation: QuantileInterpolation=…) -> Series | (q: AnyArrayLike | Sequence[float], axis: Axis=…, numeric_only: bool | lib.NoDefault=…, interpolation: QuantileInterpolation=…) -> Series | DataFrame | (q: float | AnyArrayLike | Sequence[float]=…, axis: Axis=…, numeric_only: bool | lib.NoDefault=…, interpo… → method DataFrame.quantile(q: float=…, axis: Axis=…, numeric_only: bool=…, interpolation: QuantileInterpolation=…, method: Literal['single', 'table']=…) -> Series | (q: AnyArrayLike | Sequence[float], axis: Axis=…, numeric_only: bool=…, interpolation: QuantileInterpolation=…, method: Literal['single', 'table']=…) -> Series | DataFrame | (q: float | AnyArrayLike | Sequence[float]=…, axis: Axis=…, n… - changed:
method DataFrame.reindex(*args, **kwargs) -> DataFrame → method DataFrame.reindex(labels=…, *, index=…, columns=…, axis: Axis | None=…, method: ReindexMethod | None=…, copy: bool | None=…, level: Level | None=…, fill_value: Scalar | None=…, limit: int | None=…, tolerance=…) -> DataFrame - changed:
method DataFrame.reorder_levels(order: Sequence[Axis], axis: Axis=…) -> DataFrame → method DataFrame.reorder_levels(order: Sequence[int | str], axis: Axis=…) -> DataFrame - changed:
method DataFrame.reset_index(level: IndexLabel=…, *, drop: bool=…, inplace: Literal[False]=…, col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool | lib.NoDefault=…, names: Hashable | Sequence[Hashable]=…) -> DataFrame | (level: IndexLabel=…, *, drop: bool=…, inplace: Literal[True], col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool | lib.NoDefault=…, names: Hashab… → method DataFrame.reset_index(level: IndexLabel=…, *, drop: bool=…, inplace: Literal[False]=…, col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool | lib.NoDefault=…, names: Hashable | Sequence[Hashable] | None=…) -> DataFrame | (level: IndexLabel=…, *, drop: bool=…, inplace: Literal[True], col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool | lib.NoDefault=…, names:… - changed:
method DataFrame.select_dtypes(include=…, exclude=…) -> DataFrame → method DataFrame.select_dtypes(include=…, exclude=…) -> Self - changed:
method DataFrame.set_axis(labels, *, axis: Axis=…, inplace: Literal[False] | lib.NoDefault=…, copy: bool | lib.NoDefault=…) -> DataFrame | (labels, *, axis: Axis=…, inplace: Literal[True], copy: bool | lib.NoDefault=…) -> None | (labels, *, axis: Axis=…, inplace: bool | lib.NoDefault=…, copy: bool | lib.NoDefault=…) -> DataFrame | None → method DataFrame.set_axis(labels, *, axis: Axis=…, copy: bool | None=…) -> DataFrame - changed:
method DataFrame.shift(periods: int=…, freq: Frequency | None=…, axis: Axis=…, fill_value: Hashable=…) -> DataFrame → method DataFrame.shift(periods: int | Sequence[int]=…, freq: Frequency | None=…, axis: Axis=…, fill_value: Hashable=…, suffix: str | None=…) -> DataFrame - changed:
method DataFrame.sort_values(by: IndexLabel, *, axis: Axis=…, ascending=…, inplace: Literal[False]=…, kind: str=…, na_position: str=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> DataFrame | (by: IndexLabel, *, axis: Axis=…, ascending=…, inplace: Literal[True], kind: str=…, na_position: str=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> None → method DataFrame.sort_values(by: IndexLabel, *, axis: Axis=…, ascending=…, inplace: Literal[False]=…, kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> DataFrame | (by: IndexLabel, *, axis: Axis=…, ascending=…, inplace: Literal[True], kind: SortKind=…, na_position: str=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> None - changed:
method DataFrame.stack(level: Level=…, dropna: bool=…) → method DataFrame.stack(level: IndexLabel=…, dropna: bool | lib.NoDefault=…, sort: bool | lib.NoDefault=…, future_stack: bool=…) - changed:
method DataFrame.to_dict(orient: Literal['dict', 'list', 'series', 'split', 'tight', 'index']=…, into: type[dict]=…) -> dict | (orient: Literal['records'], into: type[dict]=…) -> list[dict] → method DataFrame.to_dict(orient: Literal['dict', 'list', 'series', 'split', 'tight', 'index']=…, *, into: type[MutableMappingT] | MutableMappingT, index: bool=…) -> MutableMappingT | (orient: Literal['records'], *, into: type[MutableMappingT] | MutableMappingT, index: bool=…) -> list[MutableMappingT] | (orient: Literal['dict', 'list', 'series', 'split', 'tight', 'index']=…, *, into: type[dict]=…,… - changed:
method DataFrame.to_gbq(destination_table: str, project_id: str | None=…, chunksize: int | None=…, reauth: bool=…, if_exists: str=…, auth_local_webserver: bool=…, table_schema: list[dict[str, str]] | None=…, location: str | None=…, progress_bar: bool=…, credentials=…) -> None → method DataFrame.to_gbq(destination_table: str, project_id: str | None=…, chunksize: int | None=…, reauth: bool=…, if_exists: ToGbqIfexist=…, auth_local_webserver: bool=…, table_schema: list[dict[str, str]] | None=…, location: str | None=…, progress_bar: bool=…, credentials=…) -> None - changed:
method DataFrame.to_html(buf: FilePath | WriteBuffer[str], columns: Sequence[Level] | None=…, col_space: ColspaceArgType | None=…, header: bool | Sequence[str]=…, index: bool=…, na_rep: str=…, formatters: FormattersType | None=…, float_format: FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, justify: str | None=…, max_rows: int | None=…, max_cols: int | None=…, show_dimensi… → method DataFrame.to_html(buf: FilePath | WriteBuffer[str], columns: Axes | None=…, col_space: ColspaceArgType | None=…, header: bool=…, index: bool=…, na_rep: str=…, formatters: FormattersType | None=…, float_format: FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, justify: str | None=…, max_rows: int | None=…, max_cols: int | None=…, show_dimensions: bool | str=…, decimal:… - changed:
method DataFrame.to_markdown(buf: FilePath | WriteBuffer[str] | None=…, mode: str=…, index: bool=…, storage_options: StorageOptions=…, **kwargs) -> str | None → method DataFrame.to_markdown(buf: FilePath | WriteBuffer[str] | None=…, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | None - changed:
method DataFrame.to_parquet(path: None=…, engine: str=…, compression: str | None=…, index: bool | None=…, partition_cols: list[str] | None=…, storage_options: StorageOptions=…, **kwargs) -> bytes | (path: FilePath | WriteBuffer[bytes], engine: str=…, compression: str | None=…, index: bool | None=…, partition_cols: list[str] | None=…, storage_options: StorageOptions=…, **kwargs) -> None → method DataFrame.to_parquet(path: None=…, engine: Literal['auto', 'pyarrow', 'fastparquet']=…, compression: str | None=…, index: bool | None=…, partition_cols: list[str] | None=…, storage_options: StorageOptions=…, **kwargs) -> bytes | (path: FilePath | WriteBuffer[bytes], engine: Literal['auto', 'pyarrow', 'fastparquet']=…, compression: str | None=…, index: bool | None=…, partition_cols: list[st… - changed:
method DataFrame.to_period(freq: Frequency | None=…, axis: Axis=…, copy: bool=…) -> DataFrame → method DataFrame.to_period(freq: Frequency | None=…, axis: Axis=…, copy: bool | None=…) -> DataFrame - changed:
method DataFrame.to_records(index: bool=…, column_dtypes=…, index_dtypes=…) -> np.recarray → method DataFrame.to_records(index: bool=…, column_dtypes=…, index_dtypes=…) -> np.rec.recarray - changed:
method DataFrame.to_stata(path: FilePath | WriteBuffer[bytes], convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime.datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, version: int | None=…, convert_strl: Sequence[Hashable] | None=…, compression: CompressionOptions=…, storage_options: StorageOptions… → method DataFrame.to_stata(path: FilePath | WriteBuffer[bytes], *, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: ToStataByteorder | None=…, time_stamp: datetime.datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, version: int | None=…, convert_strl: Sequence[Hashable] | None=…, compression: CompressionOptions=…, storage_options… - changed:
method DataFrame.to_string(buf: None=…, columns: Sequence[str] | None=…, col_space: int | list[int] | dict[Hashable, int] | None=…, header: bool | Sequence[str]=…, index: bool=…, na_rep: str=…, formatters: fmt.FormattersType | None=…, float_format: fmt.FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, justify: str | None=…, max_rows: int | None=…, max_cols: int | None=…, sho… → method DataFrame.to_string(buf: None=…, columns: Axes | None=…, col_space: int | list[int] | dict[Hashable, int] | None=…, header: bool | SequenceNotStr[str]=…, index: bool=…, na_rep: str=…, formatters: fmt.FormattersType | None=…, float_format: fmt.FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, justify: str | None=…, max_rows: int | None=…, max_cols: int | None=…, show_d… - changed:
method DataFrame.to_timestamp(freq: Frequency | None=…, how: str=…, axis: Axis=…, copy: bool=…) -> DataFrame → method DataFrame.to_timestamp(freq: Frequency | None=…, how: ToTimestampHow=…, axis: Axis=…, copy: bool | None=…) -> DataFrame - changed:
method DataFrame.to_xml(path_or_buffer: FilePath | WriteBuffer[bytes] | WriteBuffer[str] | None=…, index: bool=…, root_name: str | None=…, row_name: str | None=…, na_rep: str | None=…, attr_cols: list[str] | None=…, elem_cols: list[str] | None=…, namespaces: dict[str | None, str] | None=…, prefix: str | None=…, encoding: str=…, xml_declaration: bool | None=…, pretty_print: bool | None=…, parser:… → method DataFrame.to_xml(path_or_buffer: None=…, *, index: bool=…, root_name: str | None=…, row_name: str | None=…, na_rep: str | None=…, attr_cols: list[str] | None=…, elem_cols: list[str] | None=…, namespaces: dict[str | None, str] | None=…, prefix: str | None=…, encoding: str=…, xml_declaration: bool | None=…, pretty_print: bool | None=…, parser: XMLParsers | None=…, stylesheet: FilePath | Read… - changed:
method DataFrame.unstack(level: Level=…, fill_value=…) → method DataFrame.unstack(level: IndexLabel=…, fill_value=…, sort: bool=…) - changed:
method DataFrame.update(other, join: str=…, overwrite: bool=…, filter_func=…, errors: str=…) -> None → method DataFrame.update(other, join: UpdateJoin=…, overwrite: bool=…, filter_func=…, errors: IgnoreRaise=…) -> None - changed:
method DataFrame.value_counts(subset: Sequence[Hashable] | None=…, normalize: bool=…, sort: bool=…, ascending: bool=…, dropna: bool=…) -> Series → method DataFrame.value_counts(subset: IndexLabel | None=…, normalize: bool=…, sort: bool=…, ascending: bool=…, dropna: bool=…) -> Series - changed:
static method DataFrame.from_dict(data: dict, orient: str=…, dtype: Dtype | None=…, columns: Axes | None=…) -> DataFrame → static method DataFrame.from_dict(data: dict, orient: FromDictOrient=…, dtype: Dtype | None=…, columns: Axes | None=…) -> DataFrame - added:
field DataFrame.div - added:
field DataFrame.divide - added:
field DataFrame.kurtosis - added:
field DataFrame.multiply - added:
field DataFrame.product - added:
field DataFrame.rdiv - added:
field DataFrame.subtract - added:
method DataFrame.add(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.all(axis: Axis | None=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool - added:
method DataFrame.cummax(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method DataFrame.cummin(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method DataFrame.cumprod(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method DataFrame.cumsum(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method DataFrame.eq(other, axis: Axis=…, level=…) -> DataFrame - added:
method DataFrame.floordiv(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.ge(other, axis: Axis=…, level=…) -> DataFrame - added:
method DataFrame.gt(other, axis: Axis=…, level=…) -> DataFrame - added:
method DataFrame.kurt(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.le(other, axis: Axis=…, level=…) -> DataFrame - added:
method DataFrame.lt(other, axis: Axis=…, level=…) -> DataFrame - added:
method DataFrame.map(func: PythonFuncType, na_action: str | None=…, **kwargs) -> DataFrame - added:
method DataFrame.max(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.mean(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.median(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.min(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.mod(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.mul(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.ne(other, axis: Axis=…, level=…) -> DataFrame - added:
method DataFrame.pow(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.prod(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) - added:
method DataFrame.radd(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.rfloordiv(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.rmod(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.rmul(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.rpow(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.rsub(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.rtruediv(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.sem(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.skew(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.std(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) - added:
method DataFrame.sub(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.sum(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) - added:
method DataFrame.truediv(other, axis: Axis=…, level=…, fill_value=…) -> DataFrame - added:
method DataFrame.var(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs)
- removed:
field NDFrame.backfill - removed:
field NDFrame.pad - removed:
method NDFrame.mad(axis: Axis | None=…, skipna: bool_t=…, level: Level | None=…) -> Series | float - removed:
method NDFrame.slice_shift(periods: int=…, axis=…) -> NDFrameT - removed:
method NDFrame.tshift(periods: int=…, freq=…, axis: Axis=…) -> NDFrameT - changed:
constructor NDFrame(data: Manager, copy: bool_t=…, attrs: Mapping[Hashable, Any] | None=…) -> None → constructor NDFrame(data: Manager) -> None - changed:
method NDFrame.abs() -> NDFrameT → method NDFrame.abs() -> Self - changed:
method NDFrame.add_prefix(prefix: str) -> NDFrameT → method NDFrame.add_prefix(prefix: str, axis: Axis | None=…) -> Self - changed:
method NDFrame.add_suffix(suffix: str) -> NDFrameT → method NDFrame.add_suffix(suffix: str, axis: Axis | None=…) -> Self - changed:
method NDFrame.align(other: NDFrameT, join: Literal['outer', 'inner', 'left', 'right']=…, axis: Axis | None=…, level: Level=…, copy: bool_t=…, fill_value: Hashable=…, method: FillnaOptions | None=…, limit: int | None=…, fill_axis: Axis=…, broadcast_axis: Axis | None=…) -> NDFrameT → method NDFrame.align(other: NDFrameT, join: AlignJoin=…, axis: Axis | None=…, level: Level | None=…, copy: bool_t | None=…, fill_value: Hashable | None=…, method: FillnaOptions | None | lib.NoDefault=…, limit: int | None | lib.NoDefault=…, fill_axis: Axis | lib.NoDefault=…, broadcast_axis: Axis | None | lib.NoDefault=…) -> tuple[Self, NDFrameT] - changed:
method NDFrame.all(axis: Axis=…, bool_only: bool_t | None=…, skipna: bool_t=…, level: Level | None=…, **kwargs) -> Series | bool_t → method NDFrame.all(axis: Axis=…, bool_only: bool_t=…, skipna: bool_t=…, **kwargs) -> Series | bool_t - changed:
method NDFrame.any(axis: Axis=…, bool_only: bool_t | None=…, skipna: bool_t=…, level: Level | None=…, **kwargs) -> DataFrame | Series | bool_t → method NDFrame.any(axis: Axis | None=…, bool_only: bool_t=…, skipna: bool_t=…, **kwargs) -> Series | bool_t - changed:
method NDFrame.asfreq(freq: Frequency, method: FillnaOptions | None=…, how: str | None=…, normalize: bool_t=…, fill_value: Hashable=…) -> NDFrameT → method NDFrame.asfreq(freq: Frequency, method: FillnaOptions | None=…, how: Literal['start', 'end'] | None=…, normalize: bool_t=…, fill_value: Hashable | None=…) -> Self - changed:
method NDFrame.astype(dtype, copy: bool_t=…, errors: IgnoreRaise=…) -> NDFrameT → method NDFrame.astype(dtype, copy: bool_t | None=…, errors: IgnoreRaise=…) -> Self - changed:
method NDFrame.at_time(time, asof: bool_t=…, axis=…) -> NDFrameT → method NDFrame.at_time(time, asof: bool_t=…, axis: Axis | None=…) -> Self - changed:
method NDFrame.between_time(start_time, end_time, include_start: bool_t | lib.NoDefault=…, include_end: bool_t | lib.NoDefault=…, inclusive: IntervalClosedType | None=…, axis=…) -> NDFrameT → method NDFrame.between_time(start_time, end_time, inclusive: IntervalClosedType=…, axis: Axis | None=…) -> Self - changed:
method NDFrame.bfill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, downcast: dict | None=…) -> NDFrameT | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast: dict | None=…) -> None | (*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, downcast: dict | None=…) -> NDFrameT | None → method NDFrame.bfill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: dict | None | lib.NoDefault=…) -> Self | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast: dict | None | lib.NoDefault=…) -> None | (*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, limit_area: Litera… - changed:
method NDFrame.clip(lower=…, upper=…, axis: Axis | None=…, inplace: bool_t=…, *args, **kwargs) -> NDFrameT | None → method NDFrame.clip(lower=…, upper=…, *, axis: Axis | None=…, inplace: Literal[False]=…, **kwargs) -> Self | (lower=…, upper=…, *, axis: Axis | None=…, inplace: Literal[True], **kwargs) -> None | (lower=…, upper=…, *, axis: Axis | None=…, inplace: bool_t=…, **kwargs) -> Self | None - changed:
method NDFrame.convert_dtypes(infer_objects: bool_t=…, convert_string: bool_t=…, convert_integer: bool_t=…, convert_boolean: bool_t=…, convert_floating: bool_t=…) -> NDFrameT → method NDFrame.convert_dtypes(infer_objects: bool_t=…, convert_string: bool_t=…, convert_integer: bool_t=…, convert_boolean: bool_t=…, convert_floating: bool_t=…, dtype_backend: DtypeBackend=…) -> Self - changed:
method NDFrame.copy(deep: bool_t | None=…) -> NDFrameT → method NDFrame.copy(deep: bool_t | None=…) -> Self - changed:
method NDFrame.describe(percentiles=…, include=…, exclude=…, datetime_is_numeric: bool_t=…) -> NDFrameT → method NDFrame.describe(percentiles=…, include=…, exclude=…) -> Self - changed:
method NDFrame.drop(labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabel=…, columns: IndexLabel=…, level: Level | None=…, inplace: Literal[True], errors: IgnoreRaise=…) -> None | (labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabel=…, columns: IndexLabel=…, level: Level | None=…, inplace: Literal[False]=…, errors: IgnoreRaise=…) -> NDFrameT | (labels: IndexLabel=…, *, axis: Axis=…, index… → method NDFrame.drop(labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabel=…, columns: IndexLabel=…, level: Level | None=…, inplace: Literal[True], errors: IgnoreRaise=…) -> None | (labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabel=…, columns: IndexLabel=…, level: Level | None=…, inplace: Literal[False]=…, errors: IgnoreRaise=…) -> Self | (labels: IndexLabel=…, *, axis: Axis=…, index: In… - changed:
method NDFrame.droplevel(level: IndexLabel, axis: Axis=…) -> NDFrameT → method NDFrame.droplevel(level: IndexLabel, axis: Axis=…) -> Self - changed:
method NDFrame.ewm(com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool_t=…, ignore_na: bool_t=…, axis: Axis=…, times: str | np.ndarray | DataFrame | Series | None=…, method: str=…) -> ExponentialMovingWindow → method NDFrame.ewm(com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool_t=…, ignore_na: bool_t=…, axis: Axis | lib.NoDefault=…, times: np.ndarray | DataFrame | Series | None=…, method: Literal['single', 'table']=…) -> ExponentialMovingWindow - changed:
method NDFrame.expanding(min_periods: int=…, center: bool_t | None=…, axis: Axis=…, method: str=…) -> Expanding → method NDFrame.expanding(min_periods: int=…, axis: Axis | lib.NoDefault=…, method: Literal['single', 'table']=…) -> Expanding - changed:
method NDFrame.ffill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, downcast: dict | None=…) -> NDFrameT | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast: dict | None=…) -> None | (*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, downcast: dict | None=…) -> NDFrameT | None → method NDFrame.ffill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: dict | None | lib.NoDefault=…) -> Self | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: dict | None | lib.NoDefault=…) -> None | (*, axis: None | Axis=…, inplace… - changed:
method NDFrame.fillna(value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[False]=…, limit: int | None=…, downcast: dict | None=…) -> NDFrameT | (value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[True], limit: int | None=…, downcast: dict | None=…) -> None… → method NDFrame.fillna(value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[False]=…, limit: int | None=…, downcast: dict | None=…) -> Self | (value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[True], limit: int | None=…, downcast: dict | None=…) -> None | (… - changed:
method NDFrame.filter(items=…, like: str | None=…, regex: str | None=…, axis=…) -> NDFrameT → method NDFrame.filter(items=…, like: str | None=…, regex: str | None=…, axis: Axis | None=…) -> Self - changed:
method NDFrame.first(offset) -> NDFrameT → method NDFrame.first(offset) -> Self - changed:
method NDFrame.head(n: int=…) -> NDFrameT → method NDFrame.head(n: int=…) -> Self - changed:
method NDFrame.infer_objects() -> NDFrameT → method NDFrame.infer_objects(copy: bool_t | None=…) -> Self - changed:
method NDFrame.interpolate(method: str=…, axis: Axis=…, limit: int | None=…, inplace: bool_t=…, limit_direction: str | None=…, limit_area: str | None=…, downcast: str | None=…, **kwargs) -> NDFrameT | None → method NDFrame.interpolate(method: InterpolateOptions=…, *, axis: Axis=…, limit: int | None=…, inplace: Literal[False]=…, limit_direction: Literal['forward', 'backward', 'both'] | None=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: Literal['infer'] | None | lib.NoDefault=…, **kwargs) -> Self | (method: InterpolateOptions=…, *, axis: Axis=…, limit: int | None=…, inplace: Literal[T… - changed:
method NDFrame.isna() -> NDFrameT → method NDFrame.isna() -> Self - changed:
method NDFrame.isnull() -> NDFrameT → method NDFrame.isnull() -> Self - changed:
method NDFrame.kurt(axis: Axis | None | lib.NoDefault=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.kurt(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.last(offset) -> NDFrameT → method NDFrame.last(offset) -> Self - changed:
method NDFrame.mask(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool_t | lib.NoDefault=…) -> NDFrameT | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool_t | lib.NoDefault=…) -> None | (cond, other=…, *, inplace: bool_t=…, axis:… → method NDFrame.mask(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…) -> Self | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…) -> None | (cond, other=…, *, inplace: bool_t=…, axis: Axis | None=…, level: Level=…) -> Self | None - changed:
method NDFrame.max(axis: Axis | None | lib.NoDefault=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, **kwargs) → method NDFrame.max(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) - changed:
method NDFrame.mean(axis: Axis | None | lib.NoDefault=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.mean(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.median(axis: Axis | None | lib.NoDefault=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.median(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.min(axis: Axis | None | lib.NoDefault=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, **kwargs) → method NDFrame.min(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) - changed:
method NDFrame.notna() -> NDFrameT → method NDFrame.notna() -> Self - changed:
method NDFrame.notnull() -> NDFrameT → method NDFrame.notnull() -> Self - changed:
method NDFrame.pct_change(periods=…, fill_method=…, limit=…, freq=…, **kwargs) -> NDFrameT → method NDFrame.pct_change(periods: int=…, fill_method: FillnaOptions | None | lib.NoDefault=…, limit: int | None | lib.NoDefault=…, freq=…, **kwargs) -> Self - changed:
method NDFrame.prod(axis: Axis | None=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, min_count: int=…, **kwargs) → method NDFrame.prod(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, min_count: int=…, **kwargs) - changed:
method NDFrame.rank(axis=…, method: str=…, numeric_only: bool_t | None | lib.NoDefault=…, na_option: str=…, ascending: bool_t=…, pct: bool_t=…) -> NDFrameT → method NDFrame.rank(axis: Axis=…, method: Literal['average', 'min', 'max', 'first', 'dense']=…, numeric_only: bool_t=…, na_option: Literal['keep', 'top', 'bottom']=…, ascending: bool_t=…, pct: bool_t=…) -> Self - changed:
method NDFrame.reindex(*args, **kwargs) -> NDFrameT → method NDFrame.reindex(labels=…, *, index=…, columns=…, axis: Axis | None=…, method: ReindexMethod | None=…, copy: bool_t | None=…, level: Level | None=…, fill_value: Scalar | None=…, limit: int | None=…, tolerance=…) -> Self - changed:
method NDFrame.reindex_like(other, method: str | None=…, copy: bool_t=…, limit=…, tolerance=…) -> NDFrameT → method NDFrame.reindex_like(other, method: Literal['backfill', 'bfill', 'pad', 'ffill', 'nearest'] | None=…, copy: bool_t | None=…, limit: int | None=…, tolerance=…) -> Self - changed:
method NDFrame.rename_axis(mapper: IndexLabel | lib.NoDefault=…, *, inplace: Literal[False]=…, **kwargs) -> NDFrameT | (mapper: IndexLabel | lib.NoDefault=…, *, inplace: Literal[True], **kwargs) -> None | (mapper: IndexLabel | lib.NoDefault=…, *, inplace: bool_t=…, **kwargs) -> NDFrameT | None → method NDFrame.rename_axis(mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool_t | None=…, inplace: Literal[False]=…) -> Self | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool_t | None=…, inplace: Literal[True]) -> None | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool_t | None=…, inpla… - changed:
method NDFrame.replace(to_replace=…, value=…, *, inplace: Literal[False]=…, limit: int | None=…, regex: bool_t=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> NDFrameT | (to_replace=…, value=…, *, inplace: Literal[True], limit: int | None=…, regex: bool_t=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> None | (to_replace=…, value=…, *, inplace: bool_t=…, limit:… → method NDFrame.replace(to_replace=…, value=…, *, inplace: Literal[False]=…, limit: int | None=…, regex: bool_t=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> Self | (to_replace=…, value=…, *, inplace: Literal[True], limit: int | None=…, regex: bool_t=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> None | (to_replace=…, value=…, *, inplace: bool_t=…, limit: int… - changed:
method NDFrame.resample(rule, axis: Axis=…, closed: str | None=…, label: str | None=…, convention: str=…, kind: str | None=…, loffset=…, base: int | None=…, on: Level=…, level: Level=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys: bool_t | lib.NoDefault=…) -> Resampler → method NDFrame.resample(rule, axis: Axis | lib.NoDefault=…, closed: Literal['right', 'left'] | None=…, label: Literal['right', 'left'] | None=…, convention: Literal['start', 'end', 's', 'e']=…, kind: Literal['timestamp', 'period'] | None | lib.NoDefault=…, on: Level | None=…, level: Level | None=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys:… - changed:
method NDFrame.rolling(window: int | timedelta | BaseOffset | BaseIndexer, min_periods: int | None=…, center: bool_t=…, win_type: str | None=…, on: str | None=…, axis: Axis=…, closed: str | None=…, step: int | None=…, method: str=…) -> Window | Rolling → method NDFrame.rolling(window: int | dt.timedelta | str | BaseOffset | BaseIndexer, min_periods: int | None=…, center: bool_t=…, win_type: str | None=…, on: str | None=…, axis: Axis | lib.NoDefault=…, closed: IntervalClosedType | None=…, step: int | None=…, method: str=…) -> Window | Rolling - changed:
method NDFrame.sample(n: int | None=…, frac: float | None=…, replace: bool_t=…, weights=…, random_state: RandomState | None=…, axis: Axis | None=…, ignore_index: bool_t=…) -> NDFrameT → method NDFrame.sample(n: int | None=…, frac: float | None=…, replace: bool_t=…, weights=…, random_state: RandomState | None=…, axis: Axis | None=…, ignore_index: bool_t=…) -> Self - changed:
method NDFrame.sem(axis: Axis | None=…, skipna: bool_t=…, level: Level | None=…, ddof: int=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.sem(axis: Axis | None=…, skipna: bool_t=…, ddof: int=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.set_axis(labels, *, axis: Axis=…, inplace: Literal[False] | lib.NoDefault=…, copy: bool_t | lib.NoDefault=…) -> NDFrameT | (labels, *, axis: Axis=…, inplace: Literal[True], copy: bool_t | lib.NoDefault=…) -> None | (labels, *, axis: Axis=…, inplace: bool_t | lib.NoDefault=…, copy: bool_t | lib.NoDefault=…) -> NDFrameT | None → method NDFrame.set_axis(labels, *, axis: Axis=…, copy: bool_t | None=…) -> Self - changed:
method NDFrame.set_flags(*, copy: bool_t=…, allows_duplicate_labels: bool_t | None=…) -> NDFrameT → method NDFrame.set_flags(*, copy: bool_t=…, allows_duplicate_labels: bool_t | None=…) -> Self - changed:
method NDFrame.shift(periods: int=…, freq=…, axis: Axis=…, fill_value: Hashable=…) -> NDFrameT → method NDFrame.shift(periods: int | Sequence[int]=…, freq=…, axis: Axis=…, fill_value: Hashable=…, suffix: str | None=…) -> Self | DataFrame - changed:
method NDFrame.skew(axis: Axis | None | lib.NoDefault=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.skew(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.sort_values(*, axis: Axis=…, ascending=…, inplace: Literal[False]=…, kind: str=…, na_position: str=…, ignore_index: bool_t=…, key: ValueKeyFunc=…) -> NDFrameT | (*, axis: Axis=…, ascending=…, inplace: Literal[True], kind: str=…, na_position: str=…, ignore_index: bool_t=…, key: ValueKeyFunc=…) -> None | (*, axis: Axis=…, ascending=…, inplace: bool_t=…, kind: str=…, na_position: str=… → method NDFrame.sort_values(*, axis: Axis=…, ascending: bool_t | Sequence[bool_t]=…, inplace: Literal[False]=…, kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool_t=…, key: ValueKeyFunc=…) -> Self | (*, axis: Axis=…, ascending: bool_t | Sequence[bool_t]=…, inplace: Literal[True], kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool_t=…, key: ValueKeyFunc=…) -> None | (*, ax… - changed:
method NDFrame.squeeze(axis=…) → method NDFrame.squeeze(axis: Axis | None=…) - changed:
method NDFrame.std(axis: Axis | None=…, skipna: bool_t=…, level: Level | None=…, ddof: int=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.std(axis: Axis | None=…, skipna: bool_t=…, ddof: int=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.sum(axis: Axis | None=…, skipna: bool_t=…, level: Level | None=…, numeric_only: bool_t | None=…, min_count=…, **kwargs) → method NDFrame.sum(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, min_count: int=…, **kwargs) - changed:
method NDFrame.swapaxes(axis1: Axis, axis2: Axis, copy: bool_t=…) -> NDFrameT → method NDFrame.swapaxes(axis1: Axis, axis2: Axis, copy: bool_t | None=…) -> Self - changed:
method NDFrame.tail(n: int=…) -> NDFrameT → method NDFrame.tail(n: int=…) -> Self - changed:
method NDFrame.take(indices, axis=…, is_copy: bool_t | None=…, **kwargs) -> NDFrameT → method NDFrame.take(indices, axis: Axis=…, **kwargs) -> Self - changed:
method NDFrame.to_excel(excel_writer, sheet_name: str=…, na_rep: str=…, float_format: str | None=…, columns: Sequence[Hashable] | None=…, header: Sequence[Hashable] | bool_t=…, index: bool_t=…, index_label: IndexLabel=…, startrow: int=…, startcol: int=…, engine: str | None=…, merge_cells: bool_t=…, encoding: lib.NoDefault=…, inf_rep: str=…, verbose: lib.NoDefault=…, freeze_panes: tuple[int, int]… → method NDFrame.to_excel(excel_writer: FilePath | WriteExcelBuffer | ExcelWriter, sheet_name: str=…, na_rep: str=…, float_format: str | None=…, columns: Sequence[Hashable] | None=…, header: Sequence[Hashable] | bool_t=…, index: bool_t=…, index_label: IndexLabel | None=…, startrow: int=…, startcol: int=…, engine: Literal['openpyxl', 'xlsxwriter'] | None=…, merge_cells: bool_t=…, inf_rep: str=…, fre… - changed:
method NDFrame.to_hdf(path_or_buf: FilePath | HDFStore, key: str, mode: str=…, complevel: int | None=…, complib: str | None=…, append: bool_t=…, format: str | None=…, index: bool_t=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, dropna: bool_t | None=…, data_columns: Literal[True] | list[str] | None=…, errors: str=…, encoding: str=…) -> None → method NDFrame.to_hdf(path_or_buf: FilePath | HDFStore, key: str, mode: Literal['a', 'w', 'r+']=…, complevel: int | None=…, complib: Literal['zlib', 'lzo', 'bzip2', 'blosc'] | None=…, append: bool_t=…, format: Literal['fixed', 'table'] | None=…, index: bool_t=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, dropna: bool_t | None=…, data_columns: Literal[True] | list[str] | None=…, error… - changed:
method NDFrame.to_json(path_or_buf: FilePath | WriteBuffer[bytes] | WriteBuffer[str] | None=…, orient: str | None=…, date_format: str | None=…, double_precision: int=…, force_ascii: bool_t=…, date_unit: str=…, default_handler: Callable[[Any], JSONSerializable] | None=…, lines: bool_t=…, compression: CompressionOptions=…, index: bool_t=…, indent: int | None=…, storage_options: StorageOptions=…) ->… → method NDFrame.to_json(path_or_buf: FilePath | WriteBuffer[bytes] | WriteBuffer[str] | None=…, orient: Literal['split', 'records', 'index', 'table', 'columns', 'values'] | None=…, date_format: str | None=…, double_precision: int=…, force_ascii: bool_t=…, date_unit: TimeUnit=…, default_handler: Callable[[Any], JSONSerializable] | None=…, lines: bool_t=…, compression: CompressionOptions=…, index: b… - changed:
method NDFrame.to_latex(buf: None=…, columns: Sequence[Hashable] | None=…, col_space: ColspaceArgType | None=…, header: bool_t | Sequence[str]=…, index: bool_t=…, na_rep: str=…, formatters: FormattersType | None=…, float_format: FloatFormatType | None=…, sparsify: bool_t | None=…, index_names: bool_t=…, bold_rows: bool_t=…, column_format: str | None=…, longtable: bool_t | None=…, escape: bool_t |… → method NDFrame.to_latex(buf: None=…, columns: Sequence[Hashable] | None=…, header: bool_t | SequenceNotStr[str]=…, index: bool_t=…, na_rep: str=…, formatters: FormattersType | None=…, float_format: FloatFormatType | None=…, sparsify: bool_t | None=…, index_names: bool_t=…, bold_rows: bool_t=…, column_format: str | None=…, longtable: bool_t | None=…, escape: bool_t | None=…, encoding: str | None=…… - changed:
method NDFrame.to_pickle(path: FilePath | WriteBuffer[bytes], compression: CompressionOptions=…, protocol: int=…, storage_options: StorageOptions=…) -> None → method NDFrame.to_pickle(path: FilePath | WriteBuffer[bytes], compression: CompressionOptions=…, protocol: int=…, storage_options: StorageOptions | None=…) -> None - changed:
method NDFrame.to_sql(name: str, con, schema: str | None=…, if_exists: str=…, index: bool_t=…, index_label: IndexLabel=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: str | None=…) -> int | None → method NDFrame.to_sql(name: str, con, schema: str | None=…, if_exists: Literal['fail', 'replace', 'append']=…, index: bool_t=…, index_label: IndexLabel | None=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…) -> int | None - changed:
method NDFrame.truncate(before=…, after=…, axis=…, copy: bool_t=…) -> NDFrameT → method NDFrame.truncate(before=…, after=…, axis: Axis | None=…, copy: bool_t | None=…) -> Self - changed:
method NDFrame.tz_convert(tz, axis=…, level=…, copy: bool_t=…) -> NDFrameT → method NDFrame.tz_convert(tz, axis: Axis=…, level=…, copy: bool_t | None=…) -> Self - changed:
method NDFrame.tz_localize(tz, axis=…, level=…, copy: bool_t=…, ambiguous=…, nonexistent: str=…) -> NDFrameT → method NDFrame.tz_localize(tz, axis: Axis=…, level=…, copy: bool_t | None=…, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - changed:
method NDFrame.var(axis: Axis | None=…, skipna: bool_t=…, level: Level | None=…, ddof: int=…, numeric_only: bool_t | None=…, **kwargs) -> Series | float → method NDFrame.var(axis: Axis | None=…, skipna: bool_t=…, ddof: int=…, numeric_only: bool_t=…, **kwargs) -> Series | float - changed:
method NDFrame.where(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool_t | lib.NoDefault=…) -> NDFrameT | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool_t | lib.NoDefault=…) -> None | (cond, other=…, *, inplace: bool_t=…, axis… → method NDFrame.where(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…) -> Self | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…) -> None | (cond, other=…, *, inplace: bool_t=…, axis: Axis | None=…, level: Level=…) -> Self | None - changed:
method NDFrame.xs(key: IndexLabel, axis: Axis=…, level: IndexLabel=…, drop_level: bool_t=…) -> NDFrameT → method NDFrame.xs(key: IndexLabel, axis: Axis=…, level: IndexLabel | None=…, drop_level: bool_t=…) -> Self - added:
function make_doc(name: str, ndim: int) -> str - added:
method NDFrame.backfill(*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, downcast: dict | None | lib.NoDefault=…) -> Self | None - added:
method NDFrame.pad(*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, downcast: dict | None | lib.NoDefault=…) -> Self | None
- removed:
function maybe_normalize_deprecated_kernels(kernel) -> Literal['bfill', 'ffill'] - removed:
variable common_apply_allowlist - removed:
variable dataframe_apply_allowlist: frozenset[str] - removed:
variable series_apply_allowlist: frozenset[str]
- removed:
function recode_from_groupby(c: Categorical, sort: bool, ci: CategoricalIndex) -> CategoricalIndex
- removed:
function generate_property(name: str, klass: type[DataFrame | Series]) - removed:
function pin_allowlisted_properties(klass: type[DataFrame | Series], allowlist: frozenset[str]) - changed:
method DataFrameGroupBy.filter(func, dropna=…, *args, **kwargs) → method DataFrameGroupBy.filter(func, dropna: bool=…, *args, **kwargs) - changed:
method DataFrameGroupBy.idxmax(axis=…, skipna: bool=…, numeric_only: bool | lib.NoDefault=…) -> DataFrame → method DataFrameGroupBy.idxmax(axis: Axis | None | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…) -> DataFrame - changed:
method DataFrameGroupBy.idxmin(axis=…, skipna: bool=…, numeric_only: bool | lib.NoDefault=…) -> DataFrame → method DataFrameGroupBy.idxmin(axis: Axis | None | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…) -> DataFrame - changed:
method SeriesGroupBy.describe(**kwargs) → method SeriesGroupBy.describe(percentiles=…, include=…, exclude=…) -> Series - changed:
method SeriesGroupBy.nlargest(n: int=…, keep: str=…) -> Series → method SeriesGroupBy.nlargest(n: int=…, keep: Literal['first', 'last', 'all']=…) -> Series - changed:
method SeriesGroupBy.nsmallest(n: int=…, keep: str=…) -> Series → method SeriesGroupBy.nsmallest(n: int=…, keep: Literal['first', 'last', 'all']=…) -> Series - changed:
method SeriesGroupBy.nunique(dropna: bool=…) -> Series → method SeriesGroupBy.nunique(dropna: bool=…) -> Series | DataFrame - changed:
method SeriesGroupBy.value_counts(normalize: bool=…, sort: bool=…, ascending: bool=…, bins=…, dropna: bool=…) -> Series → method SeriesGroupBy.value_counts(normalize: bool=…, sort: bool=…, ascending: bool=…, bins=…, dropna: bool=…) -> Series | DataFrame - added:
method DataFrameGroupBy.corr(method: str | Callable[[np.ndarray, np.ndarray], float]=…, min_periods: int=…, numeric_only: bool=…) -> DataFrame - added:
method DataFrameGroupBy.corrwith(other: DataFrame | Series, axis: Axis | lib.NoDefault=…, drop: bool=…, method: CorrelationMethod=…, numeric_only: bool=…) -> DataFrame - added:
method DataFrameGroupBy.cov(min_periods: int | None=…, ddof: int | None=…, numeric_only: bool=…) -> DataFrame - added:
method DataFrameGroupBy.fillna(value: Hashable | Mapping | Series | DataFrame | None=…, method: FillnaOptions | None=…, axis: Axis | None | lib.NoDefault=…, inplace: bool=…, limit: int | None=…, downcast=…) -> DataFrame | None - added:
method DataFrameGroupBy.hist(column: IndexLabel | None=…, by=…, grid: bool=…, xlabelsize: int | None=…, xrot: float | None=…, ylabelsize: int | None=…, yrot: float | None=…, ax=…, sharex: bool=…, sharey: bool=…, figsize: tuple[int, int] | None=…, layout: tuple[int, int] | None=…, bins: int | Sequence[int]=…, backend: str | None=…, legend: bool=…, **kwargs) - added:
method DataFrameGroupBy.skew(axis: Axis | None | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> DataFrame - added:
method DataFrameGroupBy.take(indices: TakeIndexer, axis: Axis | None | lib.NoDefault=…, **kwargs) -> DataFrame - added:
method SeriesGroupBy.corr(other: Series, method: CorrelationMethod=…, min_periods: int | None=…) -> Series - added:
method SeriesGroupBy.cov(other: Series, min_periods: int | None=…, ddof: int | None=…) -> Series - added:
method SeriesGroupBy.fillna(value: object | ArrayLike | None=…, method: FillnaOptions | None=…, axis: Axis | None | lib.NoDefault=…, inplace: bool=…, limit: int | None=…, downcast: dict | None | lib.NoDefault=…) -> Series | None - added:
method SeriesGroupBy.hist(by=…, ax=…, grid: bool=…, xlabelsize: int | None=…, xrot: float | None=…, ylabelsize: int | None=…, yrot: float | None=…, figsize: tuple[int, int] | None=…, bins: int | Sequence[int]=…, backend: str | None=…, legend: bool=…, **kwargs) - added:
method SeriesGroupBy.idxmax(axis: Axis | lib.NoDefault=…, skipna: bool=…) -> Series - added:
method SeriesGroupBy.idxmin(axis: Axis | lib.NoDefault=…, skipna: bool=…) -> Series - added:
method SeriesGroupBy.skew(axis: Axis | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series - added:
method SeriesGroupBy.take(indices: TakeIndexer, axis: Axis | lib.NoDefault=…, **kwargs) -> Series - added:
method SeriesGroupBy.unique() -> Series - added:
property DataFrameGroupBy.dtypes -> Series - added:
property DataFrameGroupBy.plot -> GroupByPlot - added:
property SeriesGroupBy.dtype -> Series - added:
property SeriesGroupBy.is_monotonic_decreasing -> Series - added:
property SeriesGroupBy.is_monotonic_increasing -> Series - added:
property SeriesGroupBy.plot -> GroupByPlot
- removed:
field BaseGroupBy.grouper: ops.BaseGrouper - removed:
field BaseGroupBy.plot - removed:
field GroupBy.grouper: ops.BaseGrouper - removed:
function warn_dropping_nuisance_columns_deprecated(cls, how: str, numeric_only) -> None - removed:
method GroupBy.backfill(limit=…) - removed:
method GroupBy.pad(limit=…) - changed:
constructor GroupBy(obj: NDFrameT, keys: _KeysArgType | None=…, axis: int=…, level: IndexLabel | None=…, grouper: ops.BaseGrouper | None=…, exclusions: frozenset[Hashable] | None=…, selection: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool | lib.NoDefault=…, squeeze: bool=…, observed: bool=…, mutated: bool=…, dropna: bool=…) -> None → constructor GroupBy(obj: NDFrameT, keys: _KeysArgType | None=…, axis: Axis=…, level: IndexLabel | None=…, grouper: ops.BaseGrouper | None=…, exclusions: frozenset[Hashable] | None=…, selection: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool | lib.NoDefault=…, dropna: bool=…) -> None - changed:
field BaseGroupBy.axis: int → field BaseGroupBy.axis: AxisInt - changed:
field BaseGroupBy.group_keys: bool | lib.NoDefault → field BaseGroupBy.group_keys: bool - changed:
function get_groupby(obj: NDFrame, by: _KeysArgType | None=…, axis: int=…, level=…, grouper: ops.BaseGrouper | None=…, exclusions=…, selection=…, as_index: bool=…, sort: bool=…, group_keys: bool | lib.NoDefault=…, squeeze: bool=…, observed: bool=…, mutated: bool=…, dropna: bool=…) -> GroupBy → function get_groupby(obj: NDFrame, by: _KeysArgType | None=…, axis: AxisInt=…, grouper: ops.BaseGrouper | None=…, group_keys: bool=…) -> GroupBy - changed:
method GroupBy.all(skipna: bool=…) → method GroupBy.all(skipna: bool=…) -> NDFrameT - changed:
method GroupBy.any(skipna: bool=…) → method GroupBy.any(skipna: bool=…) -> NDFrameT - changed:
method GroupBy.apply(func, *args, **kwargs) -> NDFrameT → method GroupBy.apply(func, *args, include_groups: bool=…, **kwargs) -> NDFrameT - changed:
method GroupBy.bfill(limit=…) → method GroupBy.bfill(limit: int | None=…) - changed:
method GroupBy.cummax(axis=…, numeric_only=…, **kwargs) -> NDFrameT → method GroupBy.cummax(axis: AxisInt | lib.NoDefault=…, numeric_only: bool=…, **kwargs) -> NDFrameT - changed:
method GroupBy.cummin(axis=…, numeric_only=…, **kwargs) -> NDFrameT → method GroupBy.cummin(axis: AxisInt | lib.NoDefault=…, numeric_only: bool=…, **kwargs) -> NDFrameT - changed:
method GroupBy.cumprod(axis=…, *args, **kwargs) -> NDFrameT → method GroupBy.cumprod(axis: Axis | lib.NoDefault=…, *args, **kwargs) -> NDFrameT - changed:
method GroupBy.cumsum(axis=…, *args, **kwargs) -> NDFrameT → method GroupBy.cumsum(axis: Axis | lib.NoDefault=…, *args, **kwargs) -> NDFrameT - changed:
method GroupBy.describe(**kwargs) → method GroupBy.describe(percentiles=…, include=…, exclude=…) -> NDFrameT - changed:
method GroupBy.diff(periods: int=…, axis: int=…) -> NDFrameT → method GroupBy.diff(periods: int=…, axis: AxisInt | lib.NoDefault=…) -> NDFrameT - changed:
method GroupBy.ffill(limit=…) → method GroupBy.ffill(limit: int | None=…) - changed:
method GroupBy.first(numeric_only: bool=…, min_count: int=…) → method GroupBy.first(numeric_only: bool=…, min_count: int=…, skipna: bool=…) -> NDFrameT - changed:
method GroupBy.last(numeric_only: bool=…, min_count: int=…) → method GroupBy.last(numeric_only: bool=…, min_count: int=…, skipna: bool=…) -> NDFrameT - changed:
method GroupBy.max(numeric_only: bool=…, min_count: int=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.max(numeric_only: bool=…, min_count: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.mean(numeric_only: bool | lib.NoDefault=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.mean(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.median(numeric_only: bool | lib.NoDefault=…) → method GroupBy.median(numeric_only: bool=…) -> NDFrameT - changed:
method GroupBy.min(numeric_only: bool=…, min_count: int=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.min(numeric_only: bool=…, min_count: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.pct_change(periods=…, fill_method=…, limit=…, freq=…, axis=…) → method GroupBy.pct_change(periods: int=…, fill_method: FillnaOptions | None | lib.NoDefault=…, limit: int | None | lib.NoDefault=…, freq=…, axis: Axis | lib.NoDefault=…) - changed:
method GroupBy.prod(numeric_only: bool | lib.NoDefault=…, min_count: int=…) → method GroupBy.prod(numeric_only: bool=…, min_count: int=…) -> NDFrameT - changed:
method GroupBy.quantile(q=…, interpolation: str=…, numeric_only: bool | lib.NoDefault=…) → method GroupBy.quantile(q: float | AnyArrayLike=…, interpolation: str=…, numeric_only: bool=…) - changed:
method GroupBy.rank(method: str=…, ascending: bool=…, na_option: str=…, pct: bool=…, axis: int=…) -> NDFrameT → method GroupBy.rank(method: str=…, ascending: bool=…, na_option: str=…, pct: bool=…, axis: AxisInt | lib.NoDefault=…) -> NDFrameT - changed:
method GroupBy.resample(rule, *args, **kwargs) → method GroupBy.resample(rule, *args, include_groups: bool=…, **kwargs) -> Resampler - changed:
method GroupBy.sem(ddof: int=…, numeric_only: bool | lib.NoDefault=…) → method GroupBy.sem(ddof: int=…, numeric_only: bool=…) -> NDFrameT - changed:
method GroupBy.shift(periods=…, freq=…, axis=…, fill_value=…) → method GroupBy.shift(periods: int | Sequence[int]=…, freq=…, axis: Axis | lib.NoDefault=…, fill_value=…, suffix: str | None=…) - changed:
method GroupBy.std(ddof: int=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool | lib.NoDefault=…) → method GroupBy.std(ddof: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool=…) - changed:
method GroupBy.sum(numeric_only: bool | lib.NoDefault=…, min_count: int=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.sum(numeric_only: bool=…, min_count: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.var(ddof: int=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool | lib.NoDefault=…) → method GroupBy.var(ddof: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool=…) - added:
field BaseGroupBy.level: IndexLabel | None - added:
property BaseGroupBy.grouper -> ops.BaseGrouper
- removed:
field Grouper.axis: int - removed:
method Grouping.group_arraylike() -> ArrayLike - removed:
method Grouping.group_index() -> Index - removed:
method Grouping.result_index() -> Index - changed:
constructor Grouper(key=…, level=…, freq=…, axis: int=…, sort: bool=…, dropna: bool=…) -> None → constructor Grouper(key=…, level=…, freq=…, axis: Axis | lib.NoDefault=…, sort: bool=…, dropna: bool=…) -> None - changed:
constructor Grouping(index: Index, grouper=…, obj: NDFrame | None=…, level=…, sort: bool=…, observed: bool=…, in_axis: bool=…, dropna: bool=…) -> None → constructor Grouping(index: Index, grouper=…, obj: NDFrame | None=…, level=…, sort: bool=…, observed: bool=…, in_axis: bool=…, dropna: bool=…, uniques: ArrayLike | None=…) -> None - changed:
function get_grouper(obj: NDFrameT, key=…, axis: int=…, level=…, sort: bool=…, observed: bool=…, mutated: bool=…, validate: bool=…, dropna: bool=…) -> tuple[ops.BaseGrouper, frozenset[Hashable], NDFrameT] → function get_grouper(obj: NDFrameT, key=…, axis: Axis=…, level=…, sort: bool=…, observed: bool=…, validate: bool=…, dropna: bool=…) -> tuple[ops.BaseGrouper, frozenset[Hashable], NDFrameT] - added:
property Grouper.grouper - added:
property Grouper.indexer - added:
property Grouper.obj - added:
property Grouping.group_arraylike -> ArrayLike - added:
property Grouping.group_index -> Index - added:
property Grouping.result_index -> Index
- removed:
field BinGrouper.mutated: bool - removed:
function get_splitter(data: NDFrame, labels: np.ndarray, ngroups: int, axis: int=…) -> DataSplitter - removed:
method BaseGrouper.apply(f: Callable, data: DataFrame | Series, axis: int=…) -> tuple[list, bool] - removed:
method DataSplitter.slabels() -> npt.NDArray[np.intp] - removed:
method DataSplitter.sorted_data() -> NDFrameT - removed:
method WrappedCythonOp.uses_mask() -> bool - changed:
constructor BaseGrouper(axis: Index, groupings: Sequence[grouper.Grouping], sort: bool=…, group_keys: bool=…, mutated: bool=…, indexer: npt.NDArray[np.intp] | None=…, dropna: bool=…) -> None → constructor BaseGrouper(axis: Index, groupings: Sequence[grouper.Grouping], sort: bool=…, dropna: bool=…) -> None - changed:
constructor BinGrouper(bins, binlabels, mutated: bool=…, indexer=…) -> None → constructor BinGrouper(bins, binlabels, indexer=…) -> None - changed:
constructor DataSplitter(data: NDFrameT, labels: npt.NDArray[np.intp], ngroups: int, axis: int=…) -> None → constructor DataSplitter(data: NDFrameT, labels: npt.NDArray[np.intp], ngroups: int, *, sort_idx: npt.NDArray[np.intp], sorted_ids: npt.NDArray[np.intp], axis: AxisInt=…) -> None - changed:
method BaseGrouper.get_iterator(data: NDFrameT, axis: int=…) -> Iterator[tuple[Hashable, NDFrameT]] → method BaseGrouper.get_iterator(data: NDFrameT, axis: AxisInt=…) -> Iterator[tuple[Hashable, NDFrameT]] - changed:
method BinGrouper.get_iterator(data: NDFrame, axis: int=…) → method BinGrouper.get_iterator(data: NDFrame, axis: AxisInt=…) - changed:
method WrappedCythonOp.cython_operation(*, values: ArrayLike, axis: int, min_count: int=…, comp_ids: np.ndarray, ngroups: int, **kwargs) -> ArrayLike → method WrappedCythonOp.cython_operation(*, values: ArrayLike, axis: AxisInt, min_count: int=…, comp_ids: np.ndarray, ngroups: int, **kwargs) -> ArrayLike - added:
function check_result_array(obj, dtype) -> None - added:
function extract_result(res) - added:
method BaseGrouper.apply_groupwise(f: Callable, data: DataFrame | Series, axis: AxisInt=…) -> tuple[list, bool] - added:
method BinGrouper.codes_info() -> npt.NDArray[np.intp] - added:
static method WrappedCythonOp.get_kind_from_how(how: str) -> str
- removed:
export deprecate_ndim_indexing - added:
export disallow_ndim_indexing
- changed:
constructor VariableOffsetWindowIndexer(index_array: np.ndarray | None=…, window_size: int=…, index=…, offset=…, **kwargs) -> None → constructor VariableOffsetWindowIndexer(index_array: np.ndarray | None=…, window_size: int=…, index: DatetimeIndex | None=…, offset: BaseOffset | None=…, **kwargs) -> None
- removed:
function deprecate_ndim_indexing(result, stacklevel: int=…) -> None - added:
function disallow_ndim_indexing(result) -> None
- removed:
field DatetimeProperties.week - removed:
property DatetimeProperties.weekofyear - added:
class ArrowTemporalProperties(PandasDelegate, PandasObject, NoNewAttributesMixin) - added:
constructor ArrowTemporalProperties(data: Series, orig) -> None - added:
method ArrowTemporalProperties.isocalendar() -> DataFrame - added:
method ArrowTemporalProperties.to_pydatetime() - added:
method ArrowTemporalProperties.to_pytimedelta() - added:
property ArrowTemporalProperties.components -> DataFrame
- removed:
export Float64Index - removed:
export Int64Index - removed:
export NumericIndex - removed:
export UInt64Index - changed:
function get_objs_combined_axis(objs, intersect: bool=…, axis=…, sort: bool=…, copy: bool=…) -> Index → function get_objs_combined_axis(objs, intersect: bool=…, axis: Axis=…, sort: bool=…, copy: bool=…) -> Index
- removed:
method Index.get_value(series: Series, key) - removed:
method Index.is_all_dates() -> bool - removed:
method Index.is_mixed() -> bool - removed:
method Index.is_type_compatible(kind: str_t) -> bool - removed:
method Index.set_value(arr, key, value) -> None - removed:
method Index.to_native_types(slicer=…, **kwargs) -> np.ndarray - removed:
property Index.asi8 - removed:
property Index.is_monotonic -> bool - changed:
method Index.argmax(axis=…, skipna=…, *args, **kwargs) -> int → method Index.argmax(axis=…, skipna: bool=…, *args, **kwargs) -> int - changed:
method Index.argmin(axis=…, skipna=…, *args, **kwargs) -> int → method Index.argmin(axis=…, skipna: bool=…, *args, **kwargs) -> int - changed:
method Index.copy(name: Hashable | None=…, deep: bool=…, dtype: Dtype | None=…, names: Sequence[Hashable] | None=…) -> _IndexT → method Index.copy(name: Hashable | None=…, deep: bool=…) -> Self - changed:
method Index.delete(loc) -> _IndexT → method Index.delete(loc) -> Self - changed:
method Index.drop_duplicates(keep: str_t | bool=…) -> _IndexT → method Index.drop_duplicates(*, keep: DropKeep=…) -> Self - changed:
method Index.droplevel(level=…) → method Index.droplevel(level: IndexLabel=…) - changed:
method Index.dropna(how: str_t=…) -> _IndexT → method Index.dropna(how: AnyAll=…) -> Self - changed:
method Index.duplicated(keep: Literal['first', 'last', False]=…) -> npt.NDArray[np.bool_] → method Index.duplicated(keep: DropKeep=…) -> npt.NDArray[np.bool_] - changed:
method Index.get_indexer(target, method: str_t | None=…, limit: int | None=…, tolerance=…) -> npt.NDArray[np.intp] → method Index.get_indexer(target, method: ReindexMethod | None=…, limit: int | None=…, tolerance=…) -> npt.NDArray[np.intp] - changed:
method Index.get_loc(key, method=…, tolerance=…) → method Index.get_loc(key) - changed:
method Index.get_slice_bound(label, side: Literal['left', 'right'], kind=…) -> int → method Index.get_slice_bound(label, side: Literal['left', 'right']) -> int - changed:
method Index.intersection(other, sort=…) → method Index.intersection(other, sort: bool=…) - changed:
method Index.join(other: Index, *, how: str_t=…, level: Level=…, return_indexers: Literal[True], sort: bool=…) -> tuple[Index, npt.NDArray[np.intp] | None, npt.NDArray[np.intp] | None] | (other: Index, *, how: str_t=…, level: Level=…, return_indexers: Literal[False]=…, sort: bool=…) -> Index | (other: Index, *, how: str_t=…, level: Level=…, return_indexers: bool=…, sort: bool=…) -> Index | tuple[… → method Index.join(other: Index, *, how: JoinHow=…, level: Level=…, return_indexers: Literal[True], sort: bool=…) -> tuple[Index, npt.NDArray[np.intp] | None, npt.NDArray[np.intp] | None] | (other: Index, *, how: JoinHow=…, level: Level=…, return_indexers: Literal[False]=…, sort: bool=…) -> Index | (other: Index, *, how: JoinHow=…, level: Level=…, return_indexers: bool=…, sort: bool=…) -> Index |… - changed:
method Index.map(mapper, na_action=…) → method Index.map(mapper, na_action: Literal['ignore'] | None=…) - changed:
method Index.max(axis=…, skipna=…, *args, **kwargs) → method Index.max(axis=…, skipna: bool=…, *args, **kwargs) - changed:
method Index.min(axis=…, skipna=…, *args, **kwargs) → method Index.min(axis=…, skipna: bool=…, *args, **kwargs) - changed:
method Index.ravel(order=…) → method Index.ravel(order: str_t=…) -> Self - changed:
method Index.reindex(target, method=…, level=…, limit=…, tolerance=…) -> tuple[Index, npt.NDArray[np.intp] | None] → method Index.reindex(target, method: ReindexMethod | None=…, level=…, limit: int | None=…, tolerance: float | None=…) -> tuple[Index, npt.NDArray[np.intp] | None] - changed:
method Index.rename(name, inplace=…) → method Index.rename(name, *, inplace: Literal[False]=…) -> Self | (name, *, inplace: Literal[True]) -> None - changed:
method Index.repeat(repeats, axis=…) → method Index.repeat(repeats, axis: None=…) -> Self - changed:
method Index.set_names(names, level=…, inplace: bool=…) → method Index.set_names(names, *, level=…, inplace: Literal[False]=…) -> Self | (names, *, level=…, inplace: Literal[True]) -> None | (names, *, level=…, inplace: bool=…) -> Self | None - changed:
method Index.shift(periods=…, freq=…) → method Index.shift(periods: int=…, freq=…) - changed:
method Index.slice_indexer(start: Hashable | None=…, end: Hashable | None=…, step: int | None=…, kind=…) -> slice → method Index.slice_indexer(start: Hashable | None=…, end: Hashable | None=…, step: int | None=…) -> slice - changed:
method Index.slice_locs(start=…, end=…, step=…, kind=…) -> tuple[int, int] → method Index.slice_locs(start=…, end=…, step=…) -> tuple[int, int] - changed:
method Index.sort_values(return_indexer: bool=…, ascending: bool=…, na_position: str_t=…, key: Callable | None=…) → method Index.sort_values(*, return_indexer: Literal[False]=…, ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> Self | (*, return_indexer: Literal[True], ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> tuple[Self, np.ndarray] | (*, return_indexer: bool=…, ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> Self | tuple[Self, np.… - changed:
method Index.sortlevel(level=…, ascending=…, sort_remaining=…) → method Index.sortlevel(level=…, ascending: bool | list[bool]=…, sort_remaining=…, na_position: NaPosition=…) - changed:
method Index.take(indices, axis: int=…, allow_fill: bool=…, fill_value=…, **kwargs) → method Index.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> Self - changed:
method Index.to_flat_index() -> _IndexT → method Index.to_flat_index() -> Self - changed:
method Index.to_series(index=…, name: Hashable=…) -> Series → method Index.to_series(index=…, name: Hashable | None=…) -> Series - changed:
method Index.unique(level: Hashable | None=…) -> _IndexT → method Index.unique(level: Hashable | None=…) -> Self - added:
method Index.diff(periods: int=…) -> Index - added:
method Index.infer_objects(copy: bool=…) -> Index - added:
method Index.round(decimals: int=…) -> Self
- removed:
method CategoricalIndex.astype(dtype: Dtype, copy: bool=…) -> Index - removed:
method CategoricalIndex.take_nd(*args, **kwargs) -> CategoricalIndex - changed:
method CategoricalIndex.map(mapper) → method CategoricalIndex.map(mapper, na_action: Literal['ignore'] | None=…) - changed:
method CategoricalIndex.reindex(target, method=…, level=…, limit=…, tolerance=…) -> tuple[Index, npt.NDArray[np.intp] | None] → method CategoricalIndex.reindex(target, method=…, level=…, limit: int | None=…, tolerance=…) -> tuple[Index, npt.NDArray[np.intp] | None]
- removed:
field DatetimeIndexOpsMixin.freq: BaseOffset | None - removed:
field DatetimeIndexOpsMixin.freqstr: str | None - removed:
method DatetimeTimedeltaMixin.is_type_compatible(kind: str) -> bool - changed:
class DatetimeIndexOpsMixin(NDArrayBackedExtensionIndex) → class DatetimeIndexOpsMixin(NDArrayBackedExtensionIndex, ABC) - changed:
class DatetimeTimedeltaMixin(DatetimeIndexOpsMixin) → class DatetimeTimedeltaMixin(DatetimeIndexOpsMixin, ABC) - changed:
method DatetimeIndexOpsMixin.shift(periods: int=…, freq=…) -> _T → method DatetimeIndexOpsMixin.shift(periods: int=…, freq=…) -> Self - changed:
method DatetimeTimedeltaMixin.delete(loc) -> DatetimeTimedeltaMixin → method DatetimeTimedeltaMixin.delete(loc) -> Self - changed:
method DatetimeTimedeltaMixin.take(indices, axis=…, allow_fill=…, fill_value=…, **kwargs) → method DatetimeTimedeltaMixin.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> Self - added:
method DatetimeIndexOpsMixin.mean(*, skipna: bool=…, axis: int | None=…) - added:
method DatetimeIndexOpsMixin.resolution() -> str - added:
method DatetimeTimedeltaMixin.as_unit(unit: str) -> Self - added:
method DatetimeTimedeltaMixin.inferred_freq() -> str | None - added:
method DatetimeTimedeltaMixin.shift(periods: int=…, freq=…) -> Self - added:
property DatetimeIndexOpsMixin.asi8 -> npt.NDArray[np.int64] - added:
property DatetimeIndexOpsMixin.freq -> BaseOffset | None - added:
property DatetimeIndexOpsMixin.freqstr -> str - added:
property DatetimeTimedeltaMixin.unit -> str
- removed:
field DatetimeIndex.inferred_freq: str | None - removed:
method DatetimeIndex.to_perioddelta(freq) -> TimedeltaIndex - removed:
method DatetimeIndex.to_series(keep_tz=…, index=…, name=…) - removed:
method DatetimeIndex.union_many(others) - changed:
field DatetimeIndex.tz: tzinfo | None → field DatetimeIndex.tz: dt.tzinfo | None - changed:
function bdate_range(start=…, end=…, periods: int | None=…, freq=…, tz=…, normalize: bool=…, name: Hashable=…, weekmask=…, holidays=…, closed: IntervalLeftRight | lib.NoDefault | None=…, inclusive: IntervalClosedType | None=…, **kwargs) -> DatetimeIndex → function bdate_range(start=…, end=…, periods: int | None=…, freq: Frequency | dt.timedelta=…, tz=…, normalize: bool=…, name: Hashable | None=…, weekmask=…, holidays=…, inclusive: IntervalClosedType=…, **kwargs) -> DatetimeIndex - changed:
function date_range(start=…, end=…, periods=…, freq=…, tz=…, normalize: bool=…, name: Hashable=…, closed: Literal['left', 'right'] | None | lib.NoDefault=…, inclusive: IntervalClosedType | None=…, **kwargs) -> DatetimeIndex → function date_range(start=…, end=…, periods=…, freq=…, tz=…, normalize: bool=…, name: Hashable | None=…, inclusive: IntervalClosedType=…, *, unit: str | None=…, **kwargs) -> DatetimeIndex - changed:
method DatetimeIndex.get_loc(key, method=…, tolerance=…) → method DatetimeIndex.get_loc(key) - changed:
method DatetimeIndex.slice_indexer(start=…, end=…, step=…, kind=…) → method DatetimeIndex.slice_indexer(start=…, end=…, step=…) - changed:
method DatetimeIndex.snap(freq=…) -> DatetimeIndex → method DatetimeIndex.snap(freq: Frequency=…) -> DatetimeIndex - changed:
method DatetimeIndex.to_julian_date() -> Float64Index → method DatetimeIndex.to_julian_date() -> Index - changed:
method DatetimeIndex.tz_convert(tz) -> DatetimeIndex → method DatetimeIndex.tz_convert(tz) -> Self - changed:
method DatetimeIndex.tz_localize(tz, ambiguous=…, nonexistent=…) -> DatetimeIndex → method DatetimeIndex.tz_localize(tz, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self
- removed:
method ExtensionIndex.map(mapper, na_action=…)
- changed:
function interval_range(start=…, end=…, periods=…, freq=…, name: Hashable=…, closed: IntervalClosedType=…) -> IntervalIndex → function interval_range(start=…, end=…, periods=…, freq=…, name: Hashable | None=…, closed: IntervalClosedType=…) -> IntervalIndex - changed:
method IntervalIndex.get_loc(key, method: str | None=…, tolerance=…) -> int | slice | np.ndarray → method IntervalIndex.get_loc(key) -> int | slice | np.ndarray - changed:
static method IntervalIndex.from_arrays(left, right, closed: IntervalClosedType=…, name: Hashable=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalIndex → static method IntervalIndex.from_arrays(left, right, closed: IntervalClosedType=…, name: Hashable | None=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalIndex - changed:
static method IntervalIndex.from_breaks(breaks, closed: IntervalClosedType | None=…, name: Hashable=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalIndex → static method IntervalIndex.from_breaks(breaks, closed: IntervalClosedType | None=…, name: Hashable | None=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalIndex - changed:
static method IntervalIndex.from_tuples(data, closed: str=…, name: Hashable=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalIndex → static method IntervalIndex.from_tuples(data, closed: IntervalClosedType=…, name: Hashable | None=…, copy: bool=…, dtype: Dtype | None=…) -> IntervalIndex
- removed:
method MultiIndex.drop_duplicates(keep: str | bool=…) -> MultiIndex - removed:
method MultiIndex.is_lexsorted() -> bool - removed:
method MultiIndex.set_names(names, level=…, inplace: bool=…) -> MultiIndex | None - removed:
property MultiIndex.codes - removed:
property MultiIndex.lexsort_depth -> int - changed:
function sparsify_labels(label_list, start: int=…, sentinel=…) → function sparsify_labels(label_list, start: int=…, sentinel: object=…) - changed:
method MultiIndex.argsort(*args, **kwargs) -> npt.NDArray[np.intp] → method MultiIndex.argsort(*args, na_position: str=…, **kwargs) -> npt.NDArray[np.intp] - changed:
method MultiIndex.copy(names=…, dtype=…, levels=…, codes=…, deep=…, name=…) → method MultiIndex.copy(names=…, deep: bool=…, name=…) -> Self - changed:
method MultiIndex.drop(codes, level=…, errors=…) → method MultiIndex.drop(codes, level: Index | np.ndarray | Iterable[Hashable] | None=…, errors: IgnoreRaise=…) -> MultiIndex - changed:
method MultiIndex.dropna(how: str=…) -> MultiIndex → method MultiIndex.dropna(how: AnyAll=…) -> MultiIndex - changed:
method MultiIndex.duplicated(keep=…) -> npt.NDArray[np.bool_] → method MultiIndex.duplicated(keep: DropKeep=…) -> npt.NDArray[np.bool_] - changed:
method MultiIndex.get_level_values(level) → method MultiIndex.get_level_values(level) -> Index - changed:
method MultiIndex.get_loc(key, method=…) → method MultiIndex.get_loc(key) - changed:
method MultiIndex.get_loc_level(key, level=…, drop_level: bool=…) → method MultiIndex.get_loc_level(key, level: IndexLabel=…, drop_level: bool=…) - changed:
method MultiIndex.get_locs(seq) → method MultiIndex.get_locs(seq) -> npt.NDArray[np.intp] - changed:
method MultiIndex.get_slice_bound(label: Hashable | Sequence[Hashable], side: Literal['left', 'right'], kind=…) -> int → method MultiIndex.get_slice_bound(label: Hashable | Sequence[Hashable], side: Literal['left', 'right']) -> int - changed:
method MultiIndex.set_codes(codes, level=…, inplace=…, verify_integrity: bool=…) → method MultiIndex.set_codes(codes, *, level=…, verify_integrity: bool=…) -> MultiIndex - changed:
method MultiIndex.set_levels(levels, level=…, inplace=…, verify_integrity: bool=…) → method MultiIndex.set_levels(levels, *, level=…, verify_integrity: bool=…) -> MultiIndex - changed:
method MultiIndex.slice_locs(start=…, end=…, step=…, kind=…) -> tuple[int, int] → method MultiIndex.slice_locs(start=…, end=…, step=…) -> tuple[int, int] - changed:
method MultiIndex.sortlevel(level=…, ascending: bool=…, sort_remaining: bool=…) -> tuple[MultiIndex, npt.NDArray[np.intp]] → method MultiIndex.sortlevel(level: IndexLabel=…, ascending: bool | list[bool]=…, sort_remaining: bool=…, na_position: str=…) -> tuple[MultiIndex, npt.NDArray[np.intp]] - changed:
method MultiIndex.take(indices, axis: int=…, allow_fill: bool=…, fill_value=…, **kwargs) -> MultiIndex → method MultiIndex.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> MultiIndex - changed:
method MultiIndex.view(cls=…) → method MultiIndex.view(cls=…) -> Self - changed:
static method MultiIndex.from_arrays(arrays, sortorder=…, names=…) -> MultiIndex → static method MultiIndex.from_arrays(arrays, sortorder: int | None=…, names: Sequence[Hashable] | Hashable | lib.NoDefault=…) -> MultiIndex - changed:
static method MultiIndex.from_frame(df: DataFrame, sortorder=…, names=…) -> MultiIndex → static method MultiIndex.from_frame(df: DataFrame, sortorder: int | None=…, names: Sequence[Hashable] | Hashable | None=…) -> MultiIndex - changed:
static method MultiIndex.from_product(iterables: Sequence[Iterable[Hashable]], sortorder: int | None=…, names: Sequence[Hashable] | lib.NoDefault=…) -> MultiIndex → static method MultiIndex.from_product(iterables: Sequence[Iterable[Hashable]], sortorder: int | None=…, names: Sequence[Hashable] | Hashable | lib.NoDefault=…) -> MultiIndex - added:
method MultiIndex.putmask(mask, value: MultiIndex) -> MultiIndex - added:
property MultiIndex.codes -> FrozenList - added:
property MultiIndex.size -> int
- removed:
class Float64Index(NumericIndex) - removed:
class Int64Index(IntegerIndex) - removed:
class IntegerIndex(NumericIndex) - removed:
class NumericIndex(Index) - removed:
class UInt64Index(IntegerIndex) - removed:
method NumericIndex.inferred_type() -> str - removed:
property IntegerIndex.asi8 -> npt.NDArray[np.int64]
- removed:
method PeriodIndex.astype(dtype, copy: bool=…, how=…) - removed:
property PeriodIndex.hour -> Int64Index - removed:
property PeriodIndex.minute -> Int64Index - removed:
property PeriodIndex.second -> Int64Index - removed:
property PeriodIndex.values -> np.ndarray - changed:
function period_range(start=…, end=…, periods: int | None=…, freq=…, name=…) -> PeriodIndex → function period_range(start=…, end=…, periods: int | None=…, freq=…, name: Hashable | None=…) -> PeriodIndex - changed:
method PeriodIndex.asfreq(freq=…, how: str=…) -> PeriodIndex → method PeriodIndex.asfreq(freq=…, how: str=…) -> Self - changed:
method PeriodIndex.get_loc(key, method=…, tolerance=…) → method PeriodIndex.get_loc(key) - added:
method PeriodIndex.shift(periods: int=…, freq=…) -> Self - added:
property PeriodIndex.hour -> Index - added:
property PeriodIndex.minute -> Index - added:
property PeriodIndex.second -> Index - added:
property PeriodIndex.values -> npt.NDArray[np.object_] - added:
static method PeriodIndex.from_fields(*, year=…, quarter=…, month=…, day=…, hour=…, minute=…, second=…, freq=…) -> Self - added:
static method PeriodIndex.from_ordinals(ordinals, *, freq, name=…) -> Self
- changed:
class RangeIndex(NumericIndex) → class RangeIndex(Index) - changed:
method RangeIndex.copy(name: Hashable=…, deep: bool=…, dtype: Dtype | None=…, names=…) → method RangeIndex.copy(name: Hashable | None=…, deep: bool=…) -> Self - changed:
method RangeIndex.factorize(sort: bool=…, na_sentinel: int | lib.NoDefault=…, use_na_sentinel: bool | lib.NoDefault=…) -> tuple[npt.NDArray[np.intp], RangeIndex] → method RangeIndex.factorize(sort: bool=…, use_na_sentinel: bool=…) -> tuple[npt.NDArray[np.intp], RangeIndex] - changed:
method RangeIndex.get_loc(key, method=…, tolerance=…) → method RangeIndex.get_loc(key) -> int - changed:
method RangeIndex.sort_values(return_indexer: bool=…, ascending: bool=…, na_position: str=…, key: Callable | None=…) → method RangeIndex.sort_values(*, return_indexer: Literal[False]=…, ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> Self | (*, return_indexer: Literal[True], ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> tuple[Self, np.ndarray | RangeIndex] | (*, return_indexer: bool=…, ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> Self… - changed:
method RangeIndex.symmetric_difference(other, result_name: Hashable=…, sort=…) → method RangeIndex.symmetric_difference(other, result_name: Hashable | None=…, sort=…) - changed:
static method RangeIndex.from_range(data: range, name=…, dtype: Dtype | None=…) -> RangeIndex → static method RangeIndex.from_range(data: range, name=…, dtype: Dtype | None=…) -> Self - added:
method RangeIndex.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> Index
- changed:
function timedelta_range(start=…, end=…, periods: int | None=…, freq=…, name=…, closed=…) -> TimedeltaIndex → function timedelta_range(start=…, end=…, periods: int | None=…, freq=…, name=…, closed=…, *, unit: str | None=…) -> TimedeltaIndex - changed:
method TimedeltaIndex.get_loc(key, method=…, tolerance=…) → method TimedeltaIndex.get_loc(key)
- removed:
function check_deprecated_indexers(key) -> None - removed:
function convert_to_index_sliceable(obj: DataFrame, key) - added:
function check_dict_or_set_indexers(key) -> None - added:
variable T
- added:
class PandasBufferPyarrow(Buffer) - added:
constructor PandasBufferPyarrow(buffer: pa.Buffer, *, length: int) -> None - added:
property PandasBufferPyarrow.bufsize -> int - added:
property PandasBufferPyarrow.ptr -> int
- changed:
constructor PandasDataFrameXchg(df: pd.DataFrame, nan_as_null: bool=…, allow_copy: bool=…) -> None → constructor PandasDataFrameXchg(df: DataFrame, allow_copy: bool=…) -> None - changed:
method PandasDataFrameXchg.get_chunks(n_chunks=…) → method PandasDataFrameXchg.get_chunks(n_chunks: int | None=…) -> Iterable[PandasDataFrameXchg] - changed:
method PandasDataFrameXchg.select_columns(indices) -> PandasDataFrameXchg → method PandasDataFrameXchg.select_columns(indices: Sequence[int]) -> PandasDataFrameXchg - changed:
method PandasDataFrameXchg.select_columns_by_name(names) -> PandasDataFrameXchg → method PandasDataFrameXchg.select_columns_by_name(names: list[str]) -> PandasDataFrameXchg
- removed:
function bitmask_to_bool_ndarray(bitmask: np.ndarray, mask_length: int, first_byte_offset: int=…) -> np.ndarray - changed:
function buffer_to_ndarray(buffer: Buffer, dtype: tuple[DtypeKind, int, str, str], offset: int=…, length: int | None=…) -> np.ndarray → function buffer_to_ndarray(buffer: Buffer, dtype: tuple[DtypeKind, int, str, str], *, length: int, offset: int=…) -> np.ndarray - changed:
function datetime_column_to_ndarray(col: Column) -> tuple[np.ndarray, Any] → function datetime_column_to_ndarray(col: Column) -> tuple[np.ndarray | pd.Series, Any] - changed:
function from_dataframe(df, allow_copy=…) -> pd.DataFrame → function from_dataframe(df, allow_copy: bool=…) -> pd.DataFrame - changed:
function parse_datetime_format_str(format_str, data) → function parse_datetime_format_str(format_str, data) -> pd.Series | np.ndarray
- removed:
class NoBufferPresent(Exception) - added:
field ArrowCTypes.LARGE_STRING - added:
function maybe_rechunk(series: pd.Series, *, allow_copy: bool) -> pd.Series | None - added:
variable PYARROW_CTYPES
- removed:
export Block - removed:
export DatetimeTZBlock - removed:
export ExtensionBlock - removed:
export NumericBlock - removed:
export ObjectBlock - removed:
export create_block_manager_from_blocks
- removed:
method BaseArrayManager.fillna(value, limit, inplace: bool, downcast) -> T - removed:
method BaseArrayManager.interpolate(**kwargs) -> T - removed:
method BaseArrayManager.putmask(mask, new, align: bool=…) -> T - removed:
method BaseArrayManager.replace(to_replace, value, inplace: bool) -> T - removed:
method BaseArrayManager.replace_list(src_list: list[Any], dest_list: list[Any], inplace: bool=…, regex: bool=…) -> T - removed:
method BaseArrayManager.replace_regex(**kwargs) -> T - removed:
method BaseArrayManager.shift(periods: int, axis: int, fill_value) -> T - removed:
method BaseArrayManager.to_native_types(**kwargs) -> T - removed:
method BaseArrayManager.where(other, cond, align: bool) -> T - removed:
method SingleArrayManager.getitem_mgr(indexer) -> SingleArrayManager - removed:
property BaseArrayManager.is_mixed_type -> bool - removed:
property BaseArrayManager.is_numeric_mixed_type -> bool - removed:
property SingleArrayManager.axes - removed:
variable T - changed:
method ArrayManager.column_setitem(loc: int, idx: int | slice | np.ndarray, value, inplace: bool=…) -> None → method ArrayManager.column_setitem(loc: int, idx: int | slice | np.ndarray, value, inplace_only: bool=…) -> None - changed:
method ArrayManager.get_slice(slobj: slice, axis: int=…) -> ArrayManager → method ArrayManager.get_slice(slobj: slice, axis: AxisInt=…) -> ArrayManager - changed:
method ArrayManager.grouped_reduce(func: Callable, ignore_failures: bool=…) -> T → method ArrayManager.grouped_reduce(func: Callable) -> Self - changed:
method ArrayManager.insert(loc: int, item: Hashable, value: ArrayLike) -> None → method ArrayManager.insert(loc: int, item: Hashable, value: ArrayLike, refs=…) -> None - changed:
method ArrayManager.iset(loc: int | slice | np.ndarray, value: ArrayLike, inplace: bool=…) -> None → method ArrayManager.iset(loc: int | slice | np.ndarray, value: ArrayLike, inplace: bool=…, refs=…) -> None - changed:
method ArrayManager.quantile(*, qs: Float64Index, axis: int=…, transposed: bool=…, interpolation=…) -> ArrayManager → method ArrayManager.quantile(*, qs: Index, transposed: bool=…, interpolation: QuantileInterpolation=…) -> ArrayManager - changed:
method ArrayManager.reduce(func: Callable, ignore_failures: bool=…) -> tuple[T, np.ndarray] → method ArrayManager.reduce(func: Callable) -> Self - changed:
method BaseArrayManager.apply(f, align_keys: list[str] | None=…, ignore_failures: bool=…, **kwargs) -> T → method BaseArrayManager.apply(f, align_keys: list[str] | None=…, **kwargs) -> Self - changed:
method BaseArrayManager.apply_with_block(f, align_keys=…, swap_axis=…, **kwargs) -> T → method BaseArrayManager.apply_with_block(f, align_keys=…, **kwargs) -> Self - changed:
method BaseArrayManager.astype(dtype, copy: bool=…, errors: str=…) -> T → method BaseArrayManager.astype(dtype, copy: bool | None=…, errors: str=…) -> Self - changed:
method BaseArrayManager.convert(copy: bool=…, datetime: bool=…, numeric: bool=…, timedelta: bool=…) -> T → method BaseArrayManager.convert(copy: bool | None) -> Self - changed:
method BaseArrayManager.copy(deep=…) -> T → method BaseArrayManager.copy(deep: bool | Literal['all'] | None=…) -> Self - changed:
method BaseArrayManager.diff(n: int, axis: int) -> T → method BaseArrayManager.diff(n: int) -> Self - changed:
method BaseArrayManager.get_bool_data(copy: bool=…) -> T → method BaseArrayManager.get_bool_data(copy: bool=…) -> Self - changed:
method BaseArrayManager.get_dtypes() -> np.ndarray → method BaseArrayManager.get_dtypes() -> npt.NDArray[np.object_] - changed:
method BaseArrayManager.get_numeric_data(copy: bool=…) -> T → method BaseArrayManager.get_numeric_data(copy: bool=…) -> Self - changed:
method BaseArrayManager.make_empty(axes=…) -> T → method BaseArrayManager.make_empty(axes=…) -> Self - changed:
method BaseArrayManager.reindex_indexer(new_axis, indexer, axis: int, fill_value=…, allow_dups: bool=…, copy: bool=…, only_slice: bool=…, use_na_proxy: bool=…) -> T → method BaseArrayManager.reindex_indexer(new_axis, indexer, axis: AxisInt, fill_value=…, allow_dups: bool=…, copy: bool | None=…, only_slice: bool=…, use_na_proxy: bool=…) -> Self - changed:
method BaseArrayManager.set_axis(axis: int, new_labels: Index) -> None → method BaseArrayManager.set_axis(axis: AxisInt, new_labels: Index) -> None - changed:
method BaseArrayManager.setitem(indexer, value) -> T → method BaseArrayManager.setitem(indexer, value, warn: bool=…) -> Self - changed:
method BaseArrayManager.take(indexer, axis: int=…, verify: bool=…, convert_indices: bool=…) -> T → method BaseArrayManager.take(indexer: npt.NDArray[np.intp], axis: AxisInt=…, verify: bool=…) -> Self - changed:
method SingleArrayManager.apply(func, **kwargs) → method SingleArrayManager.apply(func, **kwargs) -> Self - changed:
method SingleArrayManager.get_slice(slobj: slice, axis: int=…) -> SingleArrayManager → method SingleArrayManager.get_slice(slobj: slice, axis: AxisInt=…) -> SingleArrayManager - changed:
method SingleArrayManager.make_empty(axes=…) -> SingleArrayManager → method SingleArrayManager.make_empty(axes=…) -> Self - changed:
method SingleArrayManager.setitem(indexer, value) -> SingleArrayManager → method SingleArrayManager.setitem(indexer, value, warn: bool=…) -> SingleArrayManager - added:
function concat_arrays(to_concat: list) -> ArrayLike - added:
method BaseArrayManager.add_references(mgr: BaseArrayManager) -> None - added:
method BaseArrayManager.get_values_for_csv(*, float_format, date_format, decimal, na_rep: str=…, quoting=…) -> Self - added:
method SingleArrayManager.get_rows_with_mask(indexer: npt.NDArray[np.bool_]) -> SingleArrayManager - added:
property SingleArrayManager.axes -> list[Index] - added:
static method ArrayManager.concat_horizontal(mgrs: list[Self], axes: list[Index]) -> Self - added:
static method ArrayManager.concat_vertical(mgrs: list[Self], axes: list[Index]) -> Self
- removed:
variable T - changed:
method DataManager.apply(f, align_keys: list[str] | None=…, ignore_failures: bool=…, **kwargs) -> T → method DataManager.apply(f, align_keys: list[str] | None=…, **kwargs) -> Self - changed:
method DataManager.consolidate() -> T → method DataManager.consolidate() -> Self - changed:
method DataManager.isna(func) -> T → method DataManager.isna(func) -> Self - changed:
method DataManager.reindex_axis(new_index: Index, axis: int, fill_value=…, only_slice: bool=…) -> T → method DataManager.reindex_axis(new_index: Index, axis: AxisInt, fill_value=…, only_slice: bool=…) -> Self - changed:
method DataManager.reindex_indexer(new_axis, indexer, axis: int, fill_value=…, allow_dups: bool=…, copy: bool=…, only_slice: bool=…) -> T → method DataManager.reindex_indexer(new_axis, indexer, axis: AxisInt, fill_value=…, allow_dups: bool=…, copy: bool=…, only_slice: bool=…) -> Self - changed:
method SingleDataManager.grouped_reduce(func, ignore_failures: bool=…) → method SingleDataManager.grouped_reduce(func) - changed:
method SingleDataManager.setitem_inplace(indexer, value) -> None → method SingleDataManager.setitem_inplace(indexer, value, warn: bool=…) -> None - added:
function ensure_np_dtype(dtype: DtypeObj) -> np.dtype - added:
method DataManager.apply_with_block(f, align_keys: list[str] | None=…, **kwargs) -> Self - added:
method DataManager.fillna(value, limit: int | None, inplace: bool, downcast) -> Self - added:
method DataManager.interpolate(inplace: bool, **kwargs) -> Self - added:
method DataManager.pad_or_backfill(inplace: bool, **kwargs) -> Self - added:
method DataManager.putmask(mask, new, align: bool=…, warn: bool=…) -> Self - added:
method DataManager.replace(to_replace, value, inplace: bool) -> Self - added:
method DataManager.replace_list(src_list: list[Any], dest_list: list[Any], inplace: bool=…, regex: bool=…) -> Self - added:
method DataManager.replace_regex(**kwargs) -> Self - added:
method DataManager.round(decimals: int, using_cow: bool=…) -> Self - added:
method DataManager.shift(periods: int, fill_value) -> Self - added:
method DataManager.where(other, cond, align: bool) -> Self
- removed:
class CategoricalBlock(ExtensionBlock) - removed:
field Block.is_extension - removed:
field Block.is_object - removed:
field DatetimeTZBlock.is_extension - removed:
field DatetimeTZBlock.values_for_json - removed:
field ExtensionBlock.is_extension - removed:
field NumericBlock.is_numeric - removed:
field ObjectBlock.is_object - removed:
function to_native_types(values: ArrayLike, *, na_rep=…, quoting=…, float_format=…, decimal=…, **kwargs) -> np.ndarray - removed:
method Block.getitem_block(slicer: slice | npt.NDArray[np.intp]) -> Block - removed:
method Block.is_categorical() -> bool - removed:
method Block.to_native_types(na_rep=…, quoting=…, **kwargs) -> Block - removed:
method Block.values_for_json() -> np.ndarray - removed:
method DatetimeLikeBlock.values_for_json() -> np.ndarray - removed:
method EABackedBlock.fillna(value, limit: int | None=…, inplace: bool=…, downcast=…) -> list[Block] - removed:
method EABackedBlock.interpolate(method=…, axis=…, inplace=…, limit=…, fill_value=…, **kwargs) - removed:
method EABackedBlock.values_for_json() -> np.ndarray - removed:
method ExtensionBlock.diff(n: int, axis: int=…) -> list[Block] - removed:
method ExtensionBlock.getitem_block_index(slicer: slice) -> ExtensionBlock - removed:
method ExtensionBlock.shift(periods: int, axis: int=…, fill_value: Any=…) -> list[Block] - removed:
method ExtensionBlock.take_nd(indexer: npt.NDArray[np.intp], axis: int=…, new_mgr_locs: BlockPlacement | None=…, fill_value=…) -> Block - removed:
method NDArrayBackedExtensionBlock.diff(n: int, axis: int=…) -> list[Block] - removed:
method NDArrayBackedExtensionBlock.is_extension() -> bool - removed:
method NDArrayBackedExtensionBlock.shift(periods: int, axis: int=…, fill_value: Any=…) -> list[Block] - removed:
method NumpyBlock.delete(loc) -> Block - removed:
method NumpyBlock.values_for_json() -> np.ndarray - removed:
method ObjectBlock.convert(copy: bool=…, datetime: bool=…, numeric: bool=…, timedelta: bool=…) -> list[Block] - removed:
method ObjectBlock.reduce(func, ignore_failures: bool=…) -> list[Block] - removed:
property CategoricalBlock.dtype -> DtypeObj - changed:
class Block(PandasObject) → class Block(PandasObject, libinternals.Block) - changed:
class ExtensionBlock(libinternals.Block, EABackedBlock) → class ExtensionBlock(EABackedBlock) - changed:
class NDArrayBackedExtensionBlock(libinternals.NDArrayBackedBlock, EABackedBlock) → class NDArrayBackedExtensionBlock(EABackedBlock) - changed:
class NumpyBlock(libinternals.NumpyBlock, Block) → class NumpyBlock(Block) - changed:
function extract_pandas_array(values: np.ndarray | ExtensionArray, dtype: DtypeObj | None, ndim: int) -> tuple[np.ndarray | ExtensionArray, DtypeObj | None] → function extract_pandas_array(values: ArrayLike, dtype: DtypeObj | None, ndim: int) -> tuple[ArrayLike, DtypeObj | None] - changed:
function get_block_type(dtype: DtypeObj) → function get_block_type(dtype: DtypeObj) -> type[Block] - changed:
function new_block(values, placement, *, ndim: int) -> Block → function new_block(values, placement: BlockPlacement, *, ndim: int, refs: BlockValuesRefs | None=…) -> Block - changed:
function new_block_2d(values: ArrayLike, placement: BlockPlacement) → function new_block_2d(values: ArrayLike, placement: BlockPlacement, refs: BlockValuesRefs | None=…) - changed:
method Block.astype(dtype: DtypeObj, copy: bool=…, errors: IgnoreRaise=…) -> Block → method Block.astype(dtype: DtypeObj, copy: bool=…, errors: IgnoreRaise=…, using_cow: bool=…, squeeze: bool=…) -> Block - changed:
method Block.coerce_to_target_dtype(other) -> Block → method Block.coerce_to_target_dtype(other, warn_on_upcast: bool=…, using_cow: bool=…) -> Block - changed:
method Block.convert(copy: bool=…, datetime: bool=…, numeric: bool=…, timedelta: bool=…) -> list[Block] → method Block.convert(*, copy: bool=…, using_cow: bool=…, convert_string: bool=…) -> list[Block] - changed:
method Block.copy(deep: bool=…) -> Block → method Block.copy(deep: bool=…) -> Self - changed:
method Block.delete(loc) -> Block → method Block.delete(loc) -> list[Block] - changed:
method Block.diff(n: int, axis: int=…) -> list[Block] → method Block.diff(n: int) -> list[Block] - changed:
method Block.fillna(value, limit: int | None=…, inplace: bool=…, downcast=…) -> list[Block] → method Block.fillna(value, limit: int | None=…, inplace: bool=…, downcast=…, using_cow: bool=…, already_warned=…) -> list[Block] - changed:
method Block.getitem_block_columns(slicer: slice, new_mgr_locs: BlockPlacement) -> Block → method Block.getitem_block_columns(slicer: slice, new_mgr_locs: BlockPlacement, ref_inplace_op: bool=…) -> Self - changed:
method Block.interpolate(method: str=…, axis: int=…, index: Index | None=…, inplace: bool=…, limit: int | None=…, limit_direction: str=…, limit_area: str | None=…, fill_value: Any | None=…, downcast: str | None=…, **kwargs) -> list[Block] → method Block.interpolate(*, method: InterpolateOptions, index: Index, inplace: bool=…, limit: int | None=…, limit_direction: Literal['forward', 'backward', 'both']=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: Literal['infer'] | None=…, using_cow: bool=…, already_warned=…, **kwargs) -> list[Block] - changed:
method Block.make_block(values, placement=…) -> Block → method Block.make_block(values, placement: BlockPlacement | None=…, refs: BlockValuesRefs | None=…) -> Block - changed:
method Block.make_block_same_class(values, placement: BlockPlacement | None=…) -> Block → method Block.make_block_same_class(values, placement: BlockPlacement | None=…, refs: BlockValuesRefs | None=…) -> Self - changed:
method Block.putmask(mask, new) -> list[Block] → method Block.putmask(mask, new, using_cow: bool=…, already_warned=…) -> list[Block] - changed:
method Block.quantile(qs: Float64Index, interpolation=…, axis: int=…) -> Block → method Block.quantile(qs: Index, interpolation: QuantileInterpolation=…) -> Block - changed:
method Block.reduce(func, ignore_failures: bool=…) -> list[Block] → method Block.reduce(func) -> list[Block] - changed:
method Block.replace(to_replace, value, inplace: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> list[Block] → method Block.replace(to_replace, value, inplace: bool=…, mask: npt.NDArray[np.bool_] | None=…, using_cow: bool=…, already_warned=…, convert_string=…) -> list[Block] - changed:
method Block.replace_list(src_list: Iterable[Any], dest_list: Sequence[Any], inplace: bool=…, regex: bool=…) -> list[Block] → method Block.replace_list(src_list: Iterable[Any], dest_list: Sequence[Any], inplace: bool=…, regex: bool=…, using_cow: bool=…, already_warned=…) -> list[Block] - changed:
method Block.setitem(indexer, value) -> Block → method Block.setitem(indexer, value, using_cow: bool=…) -> Block - changed:
method Block.shift(periods: int, axis: int=…, fill_value: Any=…) -> list[Block] → method Block.shift(periods: int, fill_value: Any=…) -> list[Block] - changed:
method Block.take_nd(indexer: npt.NDArray[np.intp], axis: int, new_mgr_locs: BlockPlacement | None=…, fill_value=…) -> Block → method Block.take_nd(indexer: npt.NDArray[np.intp], axis: AxisInt, new_mgr_locs: BlockPlacement | None=…, fill_value=…) -> Block - changed:
method Block.where(other, cond, _downcast=…) -> list[Block] → method Block.where(other, cond, _downcast: str | bool=…, using_cow: bool=…) -> list[Block] - changed:
method EABackedBlock.delete(loc) -> Block → method EABackedBlock.delete(loc) -> list[Block] - changed:
method EABackedBlock.putmask(mask, new) -> list[Block] → method EABackedBlock.putmask(mask, new, using_cow: bool=…, already_warned=…) -> list[Block] - changed:
method EABackedBlock.setitem(indexer, value) → method EABackedBlock.setitem(indexer, value, using_cow: bool=…) - changed:
method EABackedBlock.where(other, cond, _downcast=…) -> list[Block] → method EABackedBlock.where(other, cond, _downcast: str | bool=…, using_cow: bool=…) -> list[Block] - changed:
method ExtensionBlock.is_numeric() → method ExtensionBlock.is_numeric() -> bool - added:
field Block.refs: BlockValuesRefs - added:
method Block.convert_dtypes(copy: bool, using_cow: bool, infer_objects: bool=…, convert_string: bool=…, convert_integer: bool=…, convert_boolean: bool=…, convert_floating: bool=…, dtype_backend: DtypeBackend=…) -> list[Block] - added:
method Block.get_values_for_csv(*, float_format, date_format, decimal, na_rep: str=…, quoting=…) -> Block - added:
method Block.is_extension() -> bool - added:
method Block.is_object() -> bool - added:
method Block.pad_or_backfill(*, method: FillnaOptions, axis: AxisInt=…, inplace: bool=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: Literal['infer'] | None=…, using_cow: bool=…, already_warned=…) -> list[Block] - added:
method Block.round(decimals: int, using_cow: bool=…) -> Self - added:
method Block.slice_block_columns(slc: slice) -> Self - added:
method Block.take_block_columns(indices: npt.NDArray[np.intp]) -> Self - added:
method EABackedBlock.pad_or_backfill(*, method: FillnaOptions, axis: AxisInt=…, inplace: bool=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…, downcast: Literal['infer'] | None=…, using_cow: bool=…, already_warned=…) -> list[Block] - added:
method EABackedBlock.shift(periods: int, fill_value: Any=…) -> list[Block] - added:
method ExtensionBlock.fillna(value, limit: int | None=…, inplace: bool=…, downcast=…, using_cow: bool=…, already_warned=…) -> list[Block] - added:
method ExtensionBlock.slice_block_rows(slicer: slice) -> Self - added:
method NumpyBlock.is_numeric() -> bool - added:
variable COW_WARNING_GENERAL_MSG - added:
variable COW_WARNING_SETITEM_MSG
- removed:
function concat_arrays(to_concat: list) -> ArrayLike - removed:
method JoinUnit.dtype() -> DtypeObj - removed:
method JoinUnit.needs_filling() -> bool - changed:
constructor JoinUnit(block: Block, shape: Shape, indexers=…) → constructor JoinUnit(block: Block) -> None - changed:
function concatenate_managers(mgrs_indexers, axes: list[Index], concat_axis: int, copy: bool) -> Manager → function concatenate_managers(mgrs_indexers, axes: list[Index], concat_axis: AxisInt, copy: bool) -> Manager2D - added:
method JoinUnit.is_na_after_size_and_isna_all_deprecation() -> bool
- removed:
function fill_masked_arrays(data: MaskedRecords, arr_columns: Index) -> list[np.ndarray] - changed:
function mgr_to_mgr(mgr, typ: str, copy: bool=…) → function mgr_to_mgr(mgr, typ: str, copy: bool=…) -> Manager - changed:
function rec_array_to_mgr(data: MaskedRecords | np.recarray | np.ndarray, index, columns, dtype: DtypeObj | None, copy: bool, typ: str) -> Manager → function rec_array_to_mgr(data: np.rec.recarray | np.ndarray, index, columns, dtype: DtypeObj | None, copy: bool, typ: str) -> Manager - added:
function convert_object_array(content: list[npt.NDArray[np.object_]], dtype: DtypeObj | None, dtype_backend: str=…, coerce_float: bool=…) -> list[ArrayLike]
- removed:
field BaseBlockManager.parent: object - removed:
field BaseBlockManager.refs: list[weakref.ref | None] | None - removed:
function construction_error(tot_items: int, block_shape: Shape, axes: list[Index], e: ValueError | None=…) - removed:
method BaseBlockManager.fillna(value, limit, inplace: bool, downcast) -> T - removed:
method BaseBlockManager.interpolate(**kwargs) -> T - removed:
method BaseBlockManager.putmask(mask, new, align: bool=…) - removed:
method BaseBlockManager.replace(to_replace, value, inplace: bool) -> T - removed:
method BaseBlockManager.replace_list(src_list: list[Any], dest_list: list[Any], inplace: bool=…, regex: bool=…) -> T - removed:
method BaseBlockManager.replace_regex(**kwargs) - removed:
method BaseBlockManager.shift(periods: int, axis: int, fill_value) -> T - removed:
method BaseBlockManager.to_native_types(**kwargs) -> T - removed:
method BaseBlockManager.where(other, cond, align: bool) -> T - removed:
method SingleBlockManager.getitem_mgr(indexer: slice | npt.NDArray[np.bool_]) -> SingleBlockManager - removed:
property BaseBlockManager.is_numeric_mixed_type -> bool - removed:
variable T - changed:
constructor BaseBlockManager(blocks, axes, refs=…, verify_integrity: bool=…) -> None → constructor BaseBlockManager(blocks, axes, verify_integrity: bool=…) -> None - changed:
constructor BlockManager(blocks: Sequence[Block], axes: Sequence[Index], refs: list[weakref.ref | None] | None=…, parent: object=…, verify_integrity: bool=…) -> None → constructor BlockManager(blocks: Sequence[Block], axes: Sequence[Index], verify_integrity: bool=…) -> None - changed:
constructor SingleBlockManager(block: Block, axis: Index, refs: list[weakref.ref | None] | None=…, parent: object=…, verify_integrity: bool=…, fastpath=…) -> None → constructor SingleBlockManager(block: Block, axis: Index, verify_integrity: bool=…) -> None - changed:
function create_block_manager_from_column_arrays(arrays: list[ArrayLike], axes: list[Index], consolidate: bool=…) -> BlockManager → function create_block_manager_from_column_arrays(arrays: list[ArrayLike], axes: list[Index], consolidate: bool, refs: list) -> BlockManager - changed:
method BaseBlockManager.apply(f, align_keys: list[str] | None=…, ignore_failures: bool=…, **kwargs) -> T → method BaseBlockManager.apply(f, align_keys: list[str] | None=…, **kwargs) -> Self - changed:
method BaseBlockManager.astype(dtype, copy: bool=…, errors: str=…) -> T → method BaseBlockManager.astype(dtype, copy: bool | None=…, errors: str=…) -> Self - changed:
method BaseBlockManager.consolidate() -> T → method BaseBlockManager.consolidate() -> Self - changed:
method BaseBlockManager.convert(copy: bool=…, datetime: bool=…, numeric: bool=…, timedelta: bool=…) -> T → method BaseBlockManager.convert(copy: bool | None) -> Self - changed:
method BaseBlockManager.copy(deep=…) -> T → method BaseBlockManager.copy(deep: bool | None | Literal['all']=…) -> Self - changed:
method BaseBlockManager.diff(n: int, axis: int) -> T → method BaseBlockManager.diff(n: int) -> Self - changed:
method BaseBlockManager.get_bool_data(copy: bool=…) -> T → method BaseBlockManager.get_bool_data() -> Self - changed:
method BaseBlockManager.get_dtypes() → method BaseBlockManager.get_dtypes() -> npt.NDArray[np.object_] - changed:
method BaseBlockManager.get_numeric_data(copy: bool=…) -> T → method BaseBlockManager.get_numeric_data() -> Self - changed:
method BaseBlockManager.make_empty(axes=…) -> T → method BaseBlockManager.make_empty(axes=…) -> Self - changed:
method BaseBlockManager.reindex_indexer(new_axis: Index, indexer: npt.NDArray[np.intp] | None, axis: int, fill_value=…, allow_dups: bool=…, copy: bool | None=…, only_slice: bool=…, *, use_na_proxy: bool=…) -> T → method BaseBlockManager.reindex_indexer(new_axis: Index, indexer: npt.NDArray[np.intp] | None, axis: AxisInt, fill_value=…, allow_dups: bool=…, copy: bool | None=…, only_slice: bool=…, *, use_na_proxy: bool=…) -> Self - changed:
method BaseBlockManager.set_axis(axis: int, new_labels: Index) -> None → method BaseBlockManager.set_axis(axis: AxisInt, new_labels: Index) -> None - changed:
method BaseBlockManager.setitem(indexer, value) -> T → method BaseBlockManager.setitem(indexer, value, warn: bool=…) -> Self - changed:
method BaseBlockManager.take(indexer, axis: int=…, verify: bool=…, convert_indices: bool=…) -> T → method BaseBlockManager.take(indexer: npt.NDArray[np.intp], axis: AxisInt=…, verify: bool=…) -> Self - changed:
method BlockManager.column_setitem(loc: int, idx: int | slice | np.ndarray, value, inplace: bool=…) -> None → method BlockManager.column_setitem(loc: int, idx: int | slice | np.ndarray, value, inplace_only: bool=…) -> None - changed:
method BlockManager.grouped_reduce(func: Callable, ignore_failures: bool=…) -> T → method BlockManager.grouped_reduce(func: Callable) -> Self - changed:
method BlockManager.insert(loc: int, item: Hashable, value: ArrayLike) -> None → method BlockManager.insert(loc: int, item: Hashable, value: ArrayLike, refs=…) -> None - changed:
method BlockManager.iset(loc: int | slice | np.ndarray, value: ArrayLike, inplace: bool=…) → method BlockManager.iset(loc: int | slice | np.ndarray, value: ArrayLike, inplace: bool=…, refs: BlockValuesRefs | None=…) -> None - changed:
method BlockManager.quantile(*, qs: Float64Index, axis: int=…, interpolation=…) -> T → method BlockManager.quantile(*, qs: Index, interpolation: QuantileInterpolation=…) -> Self - changed:
method BlockManager.reduce(func: Callable, ignore_failures: bool=…) -> tuple[T, np.ndarray] → method BlockManager.reduce(func: Callable) -> Self - changed:
method BlockManager.to_dict(copy: bool=…) → method BlockManager.to_dict() -> dict[str, Self] - changed:
method SingleBlockManager.array_values() → method SingleBlockManager.array_values() -> ExtensionArray - changed:
method SingleBlockManager.get_dtypes() -> np.ndarray → method SingleBlockManager.get_dtypes() -> npt.NDArray[np.object_] - changed:
method SingleBlockManager.get_numeric_data(copy: bool=…) → method SingleBlockManager.get_numeric_data() -> Self - changed:
method SingleBlockManager.get_slice(slobj: slice, axis: int=…) -> SingleBlockManager → method SingleBlockManager.get_slice(slobj: slice, axis: AxisInt=…) -> SingleBlockManager - changed:
method SingleBlockManager.set_values(values: ArrayLike) → method SingleBlockManager.set_values(values: ArrayLike) -> None - changed:
method SingleBlockManager.setitem_inplace(indexer, value) -> None → method SingleBlockManager.setitem_inplace(indexer, value, warn: bool=…) -> None - changed:
static method BaseBlockManager.from_blocks(blocks: list[Block], axes: list[Index], refs: list[weakref.ref | None] | None=…, parent: object=…) -> T → static method BaseBlockManager.from_blocks(blocks: list[Block], axes: list[Index]) -> Self - changed:
static method BlockManager.from_blocks(blocks: list[Block], axes: list[Index], refs: list[weakref.ref | None] | None=…, parent: object=…) -> BlockManager → static method BlockManager.from_blocks(blocks: list[Block], axes: list[Index]) -> Self - changed:
static method SingleBlockManager.from_array(array: ArrayLike, index: Index) -> SingleBlockManager → static method SingleBlockManager.from_array(array: ArrayLike, index: Index, refs: BlockValuesRefs | None=…) -> SingleBlockManager - changed:
static method SingleBlockManager.from_blocks(blocks: list[Block], axes: list[Index], refs: list[weakref.ref | None] | None=…, parent: object=…) -> SingleBlockManager → static method SingleBlockManager.from_blocks(blocks: list[Block], axes: list[Index]) -> Self - added:
field BaseBlockManager.apply_with_block - added:
function make_na_array(dtype: DtypeObj, shape: Shape, fill_value) -> ArrayLike - added:
function raise_construction_error(tot_items: int, block_shape: Shape, axes: list[Index], e: ValueError | None=…) - added:
method BaseBlockManager.add_references(mgr: BaseBlockManager) -> None - added:
method BaseBlockManager.convert_dtypes(**kwargs) - added:
method BaseBlockManager.get_values_for_csv(*, float_format, date_format, decimal, na_rep: str=…, quoting=…) -> Self - added:
method BaseBlockManager.references_same_values(mgr: BaseBlockManager, blkno: int) -> bool - added:
method SingleBlockManager.get_rows_with_mask(indexer: npt.NDArray[np.bool_]) -> Self - added:
static method BlockManager.concat_horizontal(mgrs: list[Self], axes: list[Index]) -> Self - added:
static method BlockManager.concat_vertical(mgrs: list[Self], axes: list[Index]) -> Self
- added:
class DataFrameDescriber(NDFrameDescriberAbstract) - added:
class NDFrameDescriberAbstract(ABC) - added:
class SeriesDescriber(NDFrameDescriberAbstract) - added:
constructor DataFrameDescriber(obj: DataFrame, *, include: str | Sequence[str] | None, exclude: str | Sequence[str] | None) -> None - added:
constructor NDFrameDescriberAbstract(obj: DataFrame | Series) -> None - added:
field DataFrameDescriber.obj: DataFrame - added:
field SeriesDescriber.obj: Series - added:
function describe_categorical_1d(data: Series, percentiles_ignored: Sequence[float]) -> Series - added:
function describe_ndframe(*, obj: NDFrameT, include: str | Sequence[str] | None, exclude: str | Sequence[str] | None, percentiles: Sequence[float] | np.ndarray | None) -> NDFrameT - added:
function describe_numeric_1d(series: Series, percentiles: Sequence[float]) -> Series - added:
function describe_timestamp_1d(data: Series, percentiles: Sequence[float]) -> Series - added:
function describe_timestamp_as_categorical_1d(data: Series, percentiles_ignored: Sequence[float]) -> Series - added:
function reorder_columns(ldesc: Sequence[Series]) -> list[Hashable] - added:
function select_describe_func(data: Series) -> Callable - added:
method DataFrameDescriber.describe(percentiles: Sequence[float] | np.ndarray) -> DataFrame - added:
method NDFrameDescriberAbstract.describe(percentiles: Sequence[float] | np.ndarray) -> DataFrame | Series - added:
method SeriesDescriber.describe(percentiles: Sequence[float] | np.ndarray) -> Series
- added:
class SelectN - added:
class SelectNFrame(SelectN) - added:
class SelectNSeries(SelectN) - added:
constructor SelectN(obj, n: int, keep: str) -> None - added:
constructor SelectNFrame(obj: DataFrame, n: int, keep: str, columns: IndexLabel) -> None - added:
method SelectN.compute(method: str) -> DataFrame | Series - added:
method SelectN.nlargest() - added:
method SelectN.nsmallest() - added:
method SelectNFrame.compute(method: str) -> DataFrame - added:
method SelectNSeries.compute(method: str) -> Series - added:
static method SelectN.is_valid_dtype_n_method(dtype: DtypeObj) -> bool
- added:
function to_dict(df: DataFrame, orient: Literal['dict', 'list', 'series', 'split', 'tight', 'index']=…, *, into: type[MutableMappingT] | MutableMappingT, index: bool=…) -> MutableMappingT | (df: DataFrame, orient: Literal['records'], *, into: type[MutableMappingT] | MutableMappingT, index: bool=…) -> list[MutableMappingT] | (df: DataFrame, orient: Literal['dict', 'list', 'series', 'split', 'tight…
- removed:
function interpolate_2d(values: np.ndarray, method: str=…, axis: Axis=…, limit: int | None=…, limit_area: str | None=…) -> None - removed:
function interpolate_array_2d(data: np.ndarray, method: str=…, axis: int=…, index: Index | None=…, limit: int | None=…, limit_direction: str=…, limit_area: str | None=…, fill_value: Any | None=…, coerce: bool=…, downcast: str | None=…, **kwargs) -> None - changed:
function clean_fill_method(method: str | None, allow_nearest: bool=…) → function clean_fill_method(method: Literal['ffill', 'pad', 'bfill', 'backfill'], *, allow_nearest: Literal[False]=…) -> Literal['pad', 'backfill'] | (method: Literal['ffill', 'pad', 'bfill', 'backfill', 'nearest'], *, allow_nearest: Literal[True]) -> Literal['pad', 'backfill', 'nearest'] - changed:
function clean_reindex_fill_method(method) -> str | None → function clean_reindex_fill_method(method) -> ReindexMethod | None - changed:
function find_valid_index(values, *, how: str) -> int | None → function find_valid_index(how: str, is_valid: npt.NDArray[np.bool_]) -> int | None - added:
function get_interp_index(method, index: Index) -> Index - added:
function infer_limit_direction(limit_direction: Literal['backward', 'forward', 'both'] | None, method: str) -> Literal['backward', 'forward', 'both'] - added:
function interpolate_2d_inplace(data: np.ndarray, index: Index, axis: AxisInt, method: str=…, limit: int | None=…, limit_direction: str=…, limit_area: str | None=…, fill_value: Any | None=…, mask=…, **kwargs) -> None - added:
function pad_or_backfill_inplace(values: np.ndarray, method: Literal['pad', 'backfill']=…, axis: AxisInt=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…) -> None - added:
function validate_limit_area(limit_area: str | None) -> Literal['inside', 'outside'] | None - added:
function validate_limit_direction(limit_direction: str) -> Literal['forward', 'backward', 'both']
- removed:
function get_empty_reduction_result(shape: tuple[int, ...], axis: int, dtype: np.dtype | type[np.floating], fill_value: Any) -> np.ndarray - removed:
function make_nancomp(op) - removed:
variable naneq - removed:
variable nange - removed:
variable nangt - removed:
variable nanle - removed:
variable nanlt - removed:
variable nanne - changed:
function get_corr_func(method) -> Callable[[np.ndarray, np.ndarray], float] → function get_corr_func(method: CorrelationMethod) -> Callable[[np.ndarray, np.ndarray], float] - changed:
function nanall(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> bool → function nanall(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> bool - changed:
function nanany(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> bool → function nanany(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> bool - changed:
function nanargmax(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> int | np.ndarray → function nanargmax(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> int | np.ndarray - changed:
function nanargmin(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> int | np.ndarray → function nanargmin(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> int | np.ndarray - changed:
function nancorr(a: np.ndarray, b: np.ndarray, *, method=…, min_periods: int | None=…) -> float → function nancorr(a: np.ndarray, b: np.ndarray, *, method: CorrelationMethod=…, min_periods: int | None=…) -> float - changed:
function nankurt(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> float → function nankurt(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> float - changed:
function nanmean(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> float → function nanmean(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> float - changed:
function nanmedian(values, *, axis=…, skipna=…, mask=…) → function nanmedian(values, *, axis: AxisInt | None=…, skipna: bool=…, mask=…) - changed:
function nanprod(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, min_count: int=…, mask: npt.NDArray[np.bool_] | None=…) -> float → function nanprod(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, min_count: int=…, mask: npt.NDArray[np.bool_] | None=…) -> float - changed:
function nansem(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, ddof: int=…, mask: npt.NDArray[np.bool_] | None=…) -> float → function nansem(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, ddof: int=…, mask: npt.NDArray[np.bool_] | None=…) -> float - changed:
function nanskew(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> float → function nanskew(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> float - changed:
function nanstd(values, *, axis=…, skipna=…, ddof=…, mask=…) → function nanstd(values, *, axis: AxisInt | None=…, skipna: bool=…, ddof: int=…, mask=…) - changed:
function nansum(values: np.ndarray, *, axis: int | None=…, skipna: bool=…, min_count: int=…, mask: npt.NDArray[np.bool_] | None=…) -> float → function nansum(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, min_count: int=…, mask: npt.NDArray[np.bool_] | None=…) -> float - changed:
function nanvar(values, *, axis=…, skipna=…, ddof=…, mask=…) → function nanvar(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, ddof: int=…, mask=…)
- removed:
export add_flex_arithmetic_methods - removed:
export maybe_dispatch_ufunc_to_dunder_op - removed:
function align_method_FRAME(left, right, axis, flex: bool | None=…, level: Level=…) - removed:
function align_method_SERIES(left: Series, right, align_asobject: bool=…) - removed:
function fill_binop(left, right, fill_value) - removed:
function flex_arith_method_FRAME(op) - removed:
function flex_comp_method_FRAME(op) - removed:
function flex_method_SERIES(op) - removed:
function frame_arith_method_with_reindex(left: DataFrame, right: DataFrame, op) -> DataFrame - removed:
function should_reindex_frame_op(left: DataFrame, right, op, axis, default_axis, fill_value, level) -> bool - removed:
variable COMPARISON_BINOPS: set[str] - added:
export fill_binop - added:
export get_array_op - added:
export get_op_result_name - added:
export make_flex_doc - added:
export maybe_prepare_scalar_for_op
- added:
function fill_binop(left, right, fill_value)
- changed:
function invalid_comparison(left, right, op) -> np.ndarray → function invalid_comparison(left, right, op) -> npt.NDArray[np.bool_]
- removed:
function add_flex_arithmetic_methods(cls) -> None
- removed:
field Resampler.grouper: BinGrouper - removed:
method Resampler.backfill(limit=…) - removed:
method Resampler.pad(limit=…) - removed:
property Resampler.ax - removed:
property Resampler.obj -> NDFrame - changed:
constructor Resampler(obj: DataFrame | Series, groupby: TimeGrouper, axis: int=…, kind=…, *, group_keys: bool | lib.NoDefault=…, selection=…, **kwargs) -> None → constructor Resampler(obj: NDFrame, timegrouper: TimeGrouper, axis: Axis=…, kind=…, *, gpr_index: Index, group_keys: bool=…, selection=…, include_groups: bool=…) -> None - changed:
constructor TimeGrouper(freq=…, closed: Literal['left', 'right'] | None=…, label: Literal['left', 'right'] | None=…, how=…, axis=…, fill_method=…, limit=…, loffset=…, kind: str | None=…, convention: Literal['start', 'end', 'e', 's'] | None=…, base: int | None=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys: bool | lib.NoDefault=…, **kwargs) ->… → constructor TimeGrouper(obj: Grouper | None=…, freq: Frequency=…, key: str | None=…, closed: Literal['left', 'right'] | None=…, label: Literal['left', 'right'] | None=…, how: str=…, axis: Axis=…, fill_method=…, limit: int | None=…, kind: str | None=…, convention: Literal['start', 'end', 'e', 's'] | None=…, origin: Literal['epoch', 'start', 'start_day', 'end', 'end_day'] | TimestampConvertibleType… - changed:
function get_resampler(obj, kind=…, **kwds) -> DatetimeIndexResampler | PeriodIndexResampler | TimedeltaIndexResampler → function get_resampler(obj: Series | DataFrame, kind=…, **kwds) -> Resampler - changed:
function get_resampler_for_grouping(groupby, rule, how=…, fill_method=…, limit=…, kind=…, on=…, **kwargs) → function get_resampler_for_grouping(groupby: GroupBy, rule, how=…, fill_method=…, limit: int | None=…, kind=…, on=…, include_groups: bool=…, **kwargs) -> Resampler - changed:
method Resampler.bfill(limit=…) → method Resampler.bfill(limit: int | None=…) - changed:
method Resampler.ffill(limit=…) → method Resampler.ffill(limit: int | None=…) - changed:
method Resampler.fillna(method, limit=…) → method Resampler.fillna(method, limit: int | None=…) - changed:
method Resampler.interpolate(method=…, axis=…, limit=…, inplace=…, limit_direction=…, limit_area=…, downcast=…, **kwargs) → method Resampler.interpolate(method: InterpolateOptions=…, *, axis: Axis=…, limit: int | None=…, inplace: bool=…, limit_direction: Literal['forward', 'backward', 'both']=…, limit_area=…, downcast=…, **kwargs) - changed:
method Resampler.nearest(limit=…) → method Resampler.nearest(limit: int | None=…) - changed:
method Resampler.quantile(q=…, **kwargs) → method Resampler.quantile(q: float | list[float] | AnyArrayLike=…, **kwargs) - changed:
method Resampler.std(ddof=…, numeric_only: bool | lib.NoDefault=…, *args, **kwargs) → method Resampler.std(ddof: int=…, numeric_only: bool=…, *args, **kwargs) - changed:
method Resampler.var(ddof=…, numeric_only: bool | lib.NoDefault=…, *args, **kwargs) → method Resampler.var(ddof: int=…, numeric_only: bool=…, *args, **kwargs) - added:
field DatetimeIndexResampler.ax: DatetimeIndex - added:
field PeriodIndexResampler.ax: PeriodIndex - added:
field Resampler.binner: DatetimeIndex | TimedeltaIndex | PeriodIndex - added:
field TimeGrouper.origin: TimeGrouperOrigin - added:
field TimedeltaIndexResampler.ax: TimedeltaIndex - added:
function maybe_warn_args_and_kwargs(cls, kernel: str, args, kwargs) -> None - added:
method Resampler.first(numeric_only: bool=…, min_count: int=…, skipna: bool=…, *args, **kwargs) - added:
method Resampler.last(numeric_only: bool=…, min_count: int=…, skipna: bool=…, *args, **kwargs) - added:
method Resampler.max(numeric_only: bool=…, min_count: int=…, *args, **kwargs) - added:
method Resampler.mean(numeric_only: bool=…, *args, **kwargs) - added:
method Resampler.median(numeric_only: bool=…, *args, **kwargs) - added:
method Resampler.min(numeric_only: bool=…, min_count: int=…, *args, **kwargs) - added:
method Resampler.nunique(*args, **kwargs) - added:
method Resampler.ohlc(*args, **kwargs) - added:
method Resampler.prod(numeric_only: bool=…, min_count: int=…, *args, **kwargs) - added:
method Resampler.sem(ddof: int=…, numeric_only: bool=…, *args, **kwargs) - added:
method Resampler.sum(numeric_only: bool=…, min_count: int=…, *args, **kwargs)
- changed:
function concat(objs: Iterable[DataFrame] | Mapping[HashableT, DataFrame], axis: Literal[0, 'index']=…, join: str=…, ignore_index: bool=…, keys=…, levels=…, names=…, verify_integrity: bool=…, sort: bool=…, copy: bool=…) -> DataFrame | (objs: Iterable[Series] | Mapping[HashableT, Series], axis: Literal[0, 'index']=…, join: str=…, ignore_index: bool=…, keys=…, levels=…, names=…, verify_integrity: b… → function concat(objs: Iterable[DataFrame] | Mapping[HashableT, DataFrame], *, axis: Literal[0, 'index']=…, join: str=…, ignore_index: bool=…, keys: Iterable[Hashable] | None=…, levels=…, names: list[HashableT] | None=…, verify_integrity: bool=…, sort: bool=…, copy: bool | None=…) -> DataFrame | (objs: Iterable[Series] | Mapping[HashableT, Series], *, axis: Literal[0, 'index']=…, join: str=…, igno…
- changed:
function get_dummies(data, prefix=…, prefix_sep=…, dummy_na: bool=…, columns=…, sparse: bool=…, drop_first: bool=…, dtype: Dtype | None=…) -> DataFrame → function get_dummies(data, prefix=…, prefix_sep: str | Iterable[str] | dict[str, str]=…, dummy_na: bool=…, columns=…, sparse: bool=…, drop_first: bool=…, dtype: NpDtype | None=…) -> DataFrame
- changed:
function lreshape(data: DataFrame, groups, dropna: bool=…, label=…) -> DataFrame → function lreshape(data: DataFrame, groups: dict, dropna: bool=…) -> DataFrame - changed:
function melt(frame: DataFrame, id_vars=…, value_vars=…, var_name=…, value_name=…, col_level=…, ignore_index: bool=…) -> DataFrame → function melt(frame: DataFrame, id_vars=…, value_vars=…, var_name=…, value_name: Hashable=…, col_level=…, ignore_index: bool=…) -> DataFrame - added:
function ensure_list_vars(arg_vars, variable: str, columns) -> list
- changed:
function get_join_indexers(left_keys, right_keys, sort: bool=…, how: str=…, **kwargs) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]] → function get_join_indexers(left_keys: list[ArrayLike], right_keys: list[ArrayLike], sort: bool=…, how: JoinHow=…) -> tuple[npt.NDArray[np.intp] | None, npt.NDArray[np.intp] | None] - changed:
function merge(left: DataFrame | Series, right: DataFrame | Series, how: str=…, on: IndexLabel | None=…, left_on: IndexLabel | None=…, right_on: IndexLabel | None=…, left_index: bool=…, right_index: bool=…, sort: bool=…, suffixes: Suffixes=…, copy: bool=…, indicator: bool=…, validate: str | None=…) -> DataFrame → function merge(left: DataFrame | Series, right: DataFrame | Series, how: MergeHow=…, on: IndexLabel | AnyArrayLike | None=…, left_on: IndexLabel | AnyArrayLike | None=…, right_on: IndexLabel | AnyArrayLike | None=…, left_index: bool=…, right_index: bool=…, sort: bool=…, suffixes: Suffixes=…, copy: bool | None=…, indicator: str | bool=…, validate: str | None=…) -> DataFrame - changed:
function merge_asof(left: DataFrame | Series, right: DataFrame | Series, on: IndexLabel | None=…, left_on: IndexLabel | None=…, right_on: IndexLabel | None=…, left_index: bool=…, right_index: bool=…, by=…, left_by=…, right_by=…, suffixes: Suffixes=…, tolerance=…, allow_exact_matches: bool=…, direction: str=…) -> DataFrame → function merge_asof(left: DataFrame | Series, right: DataFrame | Series, on: IndexLabel | None=…, left_on: IndexLabel | None=…, right_on: IndexLabel | None=…, left_index: bool=…, right_index: bool=…, by=…, left_by=…, right_by=…, suffixes: Suffixes=…, tolerance: int | Timedelta | None=…, allow_exact_matches: bool=…, direction: str=…) -> DataFrame - changed:
function merge_ordered(left: DataFrame, right: DataFrame, on: IndexLabel | None=…, left_on: IndexLabel | None=…, right_on: IndexLabel | None=…, left_by=…, right_by=…, fill_method: str | None=…, suffixes: Suffixes=…, how: str=…) -> DataFrame → function merge_ordered(left: DataFrame | Series, right: DataFrame | Series, on: IndexLabel | None=…, left_on: IndexLabel | None=…, right_on: IndexLabel | None=…, left_by=…, right_by=…, fill_method: str | None=…, suffixes: Suffixes=…, how: JoinHow=…) -> DataFrame - changed:
function restore_dropped_levels_multijoin(left: MultiIndex, right: MultiIndex, dropped_level_names, join_index: Index, lindexer: npt.NDArray[np.intp], rindexer: npt.NDArray[np.intp]) -> tuple[list[Index], npt.NDArray[np.intp], list[Hashable]] → function restore_dropped_levels_multijoin(left: MultiIndex, right: MultiIndex, dropped_level_names, join_index: Index, lindexer: npt.NDArray[np.intp], rindexer: npt.NDArray[np.intp]) -> tuple[FrozenList, FrozenList, FrozenList] - added:
function get_join_indexers_non_unique(left: ArrayLike, right: ArrayLike, sort: bool=…, how: JoinHow=…) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]]
- changed:
function crosstab(index, columns, values=…, rownames=…, colnames=…, aggfunc=…, margins: bool=…, margins_name: str=…, dropna: bool=…, normalize=…) -> DataFrame → function crosstab(index, columns, values=…, rownames=…, colnames=…, aggfunc=…, margins: bool=…, margins_name: Hashable=…, dropna: bool=…, normalize: bool | Literal[0, 1, 'all', 'index', 'columns']=…) -> DataFrame - changed:
function pivot(data: DataFrame, index: IndexLabel | None=…, columns: IndexLabel | None=…, values: IndexLabel | None=…) -> DataFrame → function pivot(data: DataFrame, *, columns: IndexLabel, index: IndexLabel | lib.NoDefault=…, values: IndexLabel | lib.NoDefault=…) -> DataFrame - changed:
function pivot_table(data: DataFrame, values=…, index=…, columns=…, aggfunc: AggFuncType=…, fill_value=…, margins: bool=…, dropna: bool=…, margins_name: str=…, observed: bool=…, sort: bool=…) -> DataFrame → function pivot_table(data: DataFrame, values=…, index=…, columns=…, aggfunc: AggFuncType=…, fill_value=…, margins: bool=…, dropna: bool=…, margins_name: Hashable=…, observed: bool | lib.NoDefault=…, sort: bool=…) -> DataFrame
- changed:
function stack(frame: DataFrame, level=…, dropna: bool=…) → function stack(frame: DataFrame, level=…, dropna: bool=…, sort: bool=…) - changed:
function stack_multiple(frame, level, dropna=…) → function stack_multiple(frame: DataFrame, level, dropna: bool=…, sort: bool=…) - changed:
function unstack(obj: Series | DataFrame, level, fill_value=…) → function unstack(obj: Series | DataFrame, level, fill_value=…, sort: bool=…) - added:
function stack_v3(frame: DataFrame, level: list[int]) -> Series | DataFrame
- changed:
function preprocess_weights(obj: NDFrame, weights, axis: int) -> np.ndarray → function preprocess_weights(obj: NDFrame, weights, axis: AxisInt) -> np.ndarray
- removed:
method Series.align(other: Series, join: Literal['outer', 'inner', 'left', 'right']=…, axis: Axis | None=…, level: Level=…, copy: bool=…, fill_value: Hashable=…, method: FillnaOptions | None=…, limit: int | None=…, fill_axis: Axis=…, broadcast_axis: Axis | None=…) -> Series - removed:
method Series.append(to_append, ignore_index: bool=…, verify_integrity: bool=…) -> Series - removed:
method Series.asfreq(freq: Frequency, method: FillnaOptions | None=…, how: str | None=…, normalize: bool=…, fill_value: Hashable=…) -> Series - removed:
method Series.bfill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, downcast: dict | None=…) -> Series | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast: dict | None=…) -> None | (*, axis: None | Axis=…, inplace: bool=…, limit: None | int=…, downcast: dict | None=…) -> Series | None - removed:
method Series.clip(lower=…, upper=…, axis: Axis | None=…, inplace: bool=…, *args, **kwargs) -> Series | None - removed:
method Series.ffill(*, axis: None | Axis=…, inplace: Literal[False]=…, limit: None | int=…, downcast: dict | None=…) -> Series | (*, axis: None | Axis=…, inplace: Literal[True], limit: None | int=…, downcast: dict | None=…) -> None | (*, axis: None | Axis=…, inplace: bool=…, limit: None | int=…, downcast: dict | None=…) -> Series | None - removed:
method Series.fillna(value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[False]=…, limit: int | None=…, downcast: dict | None=…) -> Series | (value: Hashable | Mapping | Series | DataFrame=…, *, method: FillnaOptions | None=…, axis: Axis | None=…, inplace: Literal[True], limit: int | None=…, downcast: dict | None=…) -> None |… - removed:
method Series.interpolate(method: str=…, axis: Axis=…, limit: int | None=…, inplace: bool=…, limit_direction: str | None=…, limit_area: str | None=…, downcast: str | None=…, **kwargs) -> Series | None - removed:
method Series.iteritems() -> Iterable[tuple[Hashable, Any]] - removed:
method Series.mask(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> Series | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> None | (cond, other=…, *, inplace: bool=…, axis: Axis | N… - removed:
method Series.replace(to_replace=…, value=…, *, inplace: Literal[False]=…, limit: int | None=…, regex: bool=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> Series | (to_replace=…, value=…, *, inplace: Literal[True], limit: int | None=…, regex: bool=…, method: Literal['pad', 'ffill', 'bfill'] | lib.NoDefault=…) -> None - removed:
method Series.resample(rule, axis: Axis=…, closed: str | None=…, label: str | None=…, convention: str=…, kind: str | None=…, loffset=…, base: int | None=…, on: Level=…, level: Level=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys: bool | lib.NoDefault=…) -> Resampler - removed:
method Series.shift(periods: int=…, freq=…, axis: Axis=…, fill_value: Hashable=…) -> Series - removed:
method Series.take(indices, axis: Axis=…, is_copy: bool | None=…, **kwargs) -> Series - removed:
method Series.where(cond, other=…, *, inplace: Literal[False]=…, axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> Series | (cond, other=…, *, inplace: Literal[True], axis: Axis | None=…, level: Level=…, errors: IgnoreRaise | lib.NoDefault=…, try_cast: bool | lib.NoDefault=…) -> None | (cond, other=…, *, inplace: bool=…, axis: Axis |… - changed:
constructor Series(data=…, index=…, dtype: Dtype | None=…, name=…, copy: bool=…, fastpath: bool=…) -> None → constructor Series(data=…, index=…, dtype: Dtype | None=…, name=…, copy: bool | None=…, fastpath: bool | lib.NoDefault=…) -> None - changed:
field Series.div: Callable[[Series, Any], Series] → field Series.div - changed:
field Series.rdiv: Callable[[Series, Any], Series] → field Series.rdiv - changed:
method Series.any(*, axis: Axis=…, bool_only: bool | None=…, skipna: bool=…, level: None=…, **kwargs) -> bool | (*, axis: Axis=…, bool_only: bool | None=…, skipna: bool=…, level: Level, **kwargs) -> Series | bool → method Series.any(*, axis: Axis=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> bool - changed:
method Series.apply(func: AggFuncType, convert_dtype: bool=…, args: tuple[Any, ...]=…, **kwargs) -> DataFrame | Series → method Series.apply(func: AggFuncType, convert_dtype: bool | lib.NoDefault=…, args: tuple[Any, ...]=…, *, by_row: Literal[False, 'compat']=…, **kwargs) -> DataFrame | Series - changed:
method Series.argsort(axis: Axis=…, kind: SortKind=…, order: None=…) -> Series → method Series.argsort(axis: Axis=…, kind: SortKind=…, order: None=…, stable: None=…) -> Series - changed:
method Series.combine(other: Series | Hashable, func: Callable[[Hashable, Hashable], Hashable], fill_value: Hashable=…) -> Series → method Series.combine(other: Series | Hashable, func: Callable[[Hashable, Hashable], Hashable], fill_value: Hashable | None=…) -> Series - changed:
method Series.corr(other: Series, method: Literal['pearson', 'kendall', 'spearman'] | Callable[[np.ndarray, np.ndarray], float]=…, min_periods: int | None=…) -> float → method Series.corr(other: Series, method: CorrelationMethod=…, min_periods: int | None=…) -> float - changed:
method Series.count(level: Level=…) → method Series.count() -> int - changed:
method Series.drop_duplicates(keep: Literal['first', 'last', False]=…, *, inplace: Literal[False]=…) -> Series | (keep: Literal['first', 'last', False]=…, *, inplace: Literal[True]) -> None | (keep: Literal['first', 'last', False]=…, *, inplace: bool=…) -> Series | None → method Series.drop_duplicates(*, keep: DropKeep=…, inplace: Literal[False]=…, ignore_index: bool=…) -> Series | (*, keep: DropKeep=…, inplace: Literal[True], ignore_index: bool=…) -> None | (*, keep: DropKeep=…, inplace: bool=…, ignore_index: bool=…) -> Series | None - changed:
method Series.dropna(*, axis: Axis=…, inplace: Literal[False]=…, how: str | None=…) -> Series | (*, axis: Axis=…, inplace: Literal[True], how: str | None=…) -> None → method Series.dropna(*, axis: Axis=…, inplace: Literal[False]=…, how: AnyAll | None=…, ignore_index: bool=…) -> Series | (*, axis: Axis=…, inplace: Literal[True], how: AnyAll | None=…, ignore_index: bool=…) -> None - changed:
method Series.duplicated(keep: Literal['first', 'last', False]=…) -> Series → method Series.duplicated(keep: DropKeep=…) -> Series - changed:
method Series.groupby(by=…, axis: Axis=…, level: Level=…, as_index: bool=…, sort: bool=…, group_keys: bool | lib.NoDefault=…, squeeze: bool | lib.NoDefault=…, observed: bool=…, dropna: bool=…) -> SeriesGroupBy → method Series.groupby(by=…, axis: Axis=…, level: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool | lib.NoDefault=…, dropna: bool=…) -> SeriesGroupBy - changed:
method Series.nsmallest(n: int=…, keep: str=…) -> Series → method Series.nsmallest(n: int=…, keep: Literal['first', 'last', 'all']=…) -> Series - changed:
method Series.ravel(order: str=…) -> np.ndarray → method Series.ravel(order: str=…) -> ArrayLike - changed:
method Series.reindex(*args, **kwargs) -> Series → method Series.reindex(index=…, *, axis: Axis | None=…, method: ReindexMethod | None=…, copy: bool | None=…, level: Level | None=…, fill_value: Scalar | None=…, limit: int | None=…, tolerance=…) -> Series - changed:
method Series.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] | np.intp → method Series.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - changed:
method Series.set_axis(labels, *, axis: Axis=…, inplace: Literal[False] | lib.NoDefault=…, copy: bool | lib.NoDefault=…) -> Series | (labels, *, axis: Axis=…, inplace: Literal[True], copy: bool | lib.NoDefault=…) -> None | (labels, *, axis: Axis=…, inplace: bool | lib.NoDefault=…, copy: bool | lib.NoDefault=…) -> Series | None → method Series.set_axis(labels, *, axis: Axis=…, copy: bool | None=…) -> Series - changed:
method Series.sort_values(*, axis: Axis=…, ascending: bool | int | Sequence[bool] | Sequence[int]=…, inplace: Literal[False]=…, kind: str=…, na_position: str=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> Series | (*, axis: Axis=…, ascending: bool | int | Sequence[bool] | Sequence[int]=…, inplace: Literal[True], kind: str=…, na_position: str=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> None → method Series.sort_values(*, axis: Axis=…, ascending: bool | Sequence[bool]=…, inplace: Literal[False]=…, kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> Series | (*, axis: Axis=…, ascending: bool | Sequence[bool]=…, inplace: Literal[True], kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> None | (*, axis: Axis=…,… - changed:
method Series.swaplevel(i: Level=…, j: Level=…, copy: bool=…) -> Series → method Series.swaplevel(i: Level=…, j: Level=…, copy: bool | None=…) -> Series - changed:
method Series.to_dict(into: type[dict]=…) -> dict → method Series.to_dict(*, into: type[MutableMappingT] | MutableMappingT) -> MutableMappingT | (*, into: type[dict]=…) -> dict - changed:
method Series.to_markdown(buf: IO[str] | None=…, mode: str=…, index: bool=…, storage_options: StorageOptions=…, **kwargs) -> str | None → method Series.to_markdown(buf: IO[str] | None=…, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | None - changed:
method Series.to_period(freq: str | None=…, copy: bool=…) -> Series → method Series.to_period(freq: str | None=…, copy: bool | None=…) -> Series - changed:
method Series.to_string(buf: None=…, na_rep: str=…, float_format: str | None=…, header: bool=…, index: bool=…, length=…, dtype=…, name=…, max_rows: int | None=…, min_rows: int | None=…) -> str | (buf: FilePath | WriteBuffer[str], na_rep: str=…, float_format: str | None=…, header: bool=…, index: bool=…, length=…, dtype=…, name=…, max_rows: int | None=…, min_rows: int | None=…) -> None → method Series.to_string(buf: None=…, na_rep: str=…, float_format: str | None=…, header: bool=…, index: bool=…, length: bool=…, dtype=…, name=…, max_rows: int | None=…, min_rows: int | None=…) -> str | (buf: FilePath | WriteBuffer[str], na_rep: str=…, float_format: str | None=…, header: bool=…, index: bool=…, length: bool=…, dtype=…, name=…, max_rows: int | None=…, min_rows: int | None=…) -> None - changed:
method Series.to_timestamp(freq=…, how: Literal['s', 'e', 'start', 'end']=…, copy: bool=…) -> Series → method Series.to_timestamp(freq: Frequency | None=…, how: Literal['s', 'e', 'start', 'end']=…, copy: bool | None=…) -> Series - changed:
method Series.unstack(level: IndexLabel=…, fill_value: Hashable=…) -> DataFrame → method Series.unstack(level: IndexLabel=…, fill_value: Hashable | None=…, sort: bool=…) -> DataFrame - added:
field Series.divide - added:
field Series.kurtosis - added:
field Series.list - added:
field Series.multiply - added:
field Series.product - added:
field Series.struct - added:
field Series.subtract - added:
method Series.add(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.all(axis: Axis=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> bool - added:
method Series.case_when(caselist: list[tuple[ArrayLike | Callable[[Series], Series | np.ndarray | Sequence[bool]], ArrayLike | Scalar | Callable[[Series], Series | np.ndarray]],]) -> Series - added:
method Series.cummax(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method Series.cummin(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method Series.cumprod(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method Series.cumsum(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) - added:
method Series.divmod(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.eq(other, level: Level | None=…, fill_value: float | None=…, axis: Axis=…) -> Series - added:
method Series.floordiv(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.ge(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.gt(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.kurt(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method Series.le(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.lt(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.max(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method Series.mean(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method Series.median(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method Series.min(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method Series.mod(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.mul(other, level: Level | None=…, fill_value: float | None=…, axis: Axis=…) -> Series - added:
method Series.ne(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.pow(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.prod(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) - added:
method Series.radd(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rdivmod(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rename_axis(mapper: IndexLabel | lib.NoDefault=…, *, index=…, axis: Axis=…, copy: bool=…, inplace: Literal[True]) -> None | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, axis: Axis=…, copy: bool=…, inplace: Literal[False]=…) -> Self | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, axis: Axis=…, copy: bool=…, inplace: bool=…) -> Self | None - added:
method Series.rfloordiv(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rmod(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rmul(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rpow(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rsub(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.rtruediv(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.sem(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) - added:
method Series.skew(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - added:
method Series.std(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) - added:
method Series.sub(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.sum(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) - added:
method Series.truediv(other, level=…, fill_value=…, axis: Axis=…) -> Series - added:
method Series.var(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs)
- removed:
function indexer_from_factorized(labels, shape: Shape, compress: bool=…) -> npt.NDArray[np.intp] - changed:
function ensure_key_mapped(values, key: Callable | None, levels=…) → function ensure_key_mapped(values: ArrayLike | Index | Series, key: Callable | None, levels=…) -> ArrayLike | Index | Series - changed:
function get_indexer_indexer(target: Index, level: Level | list[Level] | None, ascending: Sequence[bool] | bool, kind: SortKind, na_position: NaPosition, sort_remaining: bool, key: IndexKeyFunc) -> npt.NDArray[np.intp] | None → function get_indexer_indexer(target: Index, level: Level | list[Level] | None, ascending: list[bool] | bool, kind: SortKind, na_position: NaPosition, sort_remaining: bool, key: IndexKeyFunc) -> npt.NDArray[np.intp] | None - changed:
function lexsort_indexer(keys, orders=…, na_position: str=…, key: Callable | None=…) -> npt.NDArray[np.intp] → function lexsort_indexer(keys: Sequence[ArrayLike | Index | Series], orders=…, na_position: str=…, key: Callable | None=…, codes_given: bool=…) -> npt.NDArray[np.intp] - changed:
function nargminmax(values: ExtensionArray, method: str, axis: int=…) → function nargminmax(values: ExtensionArray, method: str, axis: AxisInt=…) - changed:
function nargsort(items, kind: str=…, ascending: bool=…, na_position: str=…, key: Callable | None=…, mask: npt.NDArray[np.bool_] | None=…) -> npt.NDArray[np.intp] → function nargsort(items: ArrayLike | Index | Series, kind: SortKind=…, ascending: bool=…, na_position: str=…, key: Callable | None=…, mask: npt.NDArray[np.bool_] | None=…) -> npt.NDArray[np.intp]
- removed:
export BaseStringArrayMethods - removed:
export StringMethods
- changed:
function cat_safe(list_of_columns: list, sep: str) → function cat_safe(list_of_columns: list[npt.NDArray[np.object_]], sep: str) - changed:
function str_extractall(arr, pat, flags=…) → function str_extractall(arr, pat, flags: int=…) -> DataFrame - changed:
method StringMethods.cat(others=…, sep=…, na_rep=…, join=…) -> str | Series | Index → method StringMethods.cat(others=…, sep: str | None=…, na_rep=…, join: AlignJoin=…) -> str | Series | Index - changed:
method StringMethods.center(width, fillchar=…) → method StringMethods.center(width: int, fillchar: str=…) - changed:
method StringMethods.contains(pat, case=…, flags=…, na=…, regex=…) → method StringMethods.contains(pat, case: bool=…, flags: int=…, na=…, regex: bool=…) - changed:
method StringMethods.count(pat, flags=…) → method StringMethods.count(pat, flags: int=…) - changed:
method StringMethods.decode(encoding, errors=…) → method StringMethods.decode(encoding, errors: str=…, dtype: str | DtypeObj | None=…) - changed:
method StringMethods.encode(encoding, errors=…) → method StringMethods.encode(encoding, errors: str=…) - changed:
method StringMethods.endswith(pat: str | tuple[str, ...], na: Scalar | None=…) -> Series | Index → method StringMethods.endswith(pat: str | tuple[str, ...], na: Scalar | lib.NoDefault=…) -> Series | Index - changed:
method StringMethods.extractall(pat, flags=…) → method StringMethods.extractall(pat, flags: int=…) -> DataFrame - changed:
method StringMethods.find(sub, start=…, end=…) → method StringMethods.find(sub, start: int=…, end=…) - changed:
method StringMethods.findall(pat, flags=…) → method StringMethods.findall(pat, flags: int=…) - changed:
method StringMethods.fullmatch(pat, case=…, flags=…, na=…) → method StringMethods.fullmatch(pat, case: bool=…, flags: int=…, na=…) - changed:
method StringMethods.get_dummies(sep=…) → method StringMethods.get_dummies(sep: str=…) - changed:
method StringMethods.index(sub, start=…, end=…) → method StringMethods.index(sub, start: int=…, end=…) - changed:
method StringMethods.join(sep) → method StringMethods.join(sep: str) - changed:
method StringMethods.ljust(width, fillchar=…) → method StringMethods.ljust(width: int, fillchar: str=…) - changed:
method StringMethods.match(pat, case=…, flags=…, na=…) → method StringMethods.match(pat: str, case: bool=…, flags: int=…, na=…) - changed:
method StringMethods.pad(width, side=…, fillchar=…) → method StringMethods.pad(width: int, side: Literal['left', 'right', 'both']=…, fillchar: str=…) - changed:
method StringMethods.partition(sep=…, expand=…) → method StringMethods.partition(sep: str=…, expand: bool=…) - changed:
method StringMethods.removeprefix(prefix) → method StringMethods.removeprefix(prefix: str) - changed:
method StringMethods.removesuffix(suffix) → method StringMethods.removesuffix(suffix: str) - changed:
method StringMethods.replace(pat: str | re.Pattern, repl: str | Callable, n: int=…, case: bool | None=…, flags: int=…, regex: bool | None=…) → method StringMethods.replace(pat: str | re.Pattern, repl: str | Callable, n: int=…, case: bool | None=…, flags: int=…, regex: bool=…) - changed:
method StringMethods.rfind(sub, start=…, end=…) → method StringMethods.rfind(sub, start: int=…, end=…) - changed:
method StringMethods.rindex(sub, start=…, end=…) → method StringMethods.rindex(sub, start: int=…, end=…) - changed:
method StringMethods.rjust(width, fillchar=…) → method StringMethods.rjust(width: int, fillchar: str=…) - changed:
method StringMethods.rpartition(sep=…, expand=…) → method StringMethods.rpartition(sep: str=…, expand: bool=…) - changed:
method StringMethods.rsplit(pat=…, n=…, expand=…) → method StringMethods.rsplit(pat=…, *, n=…, expand: bool=…) - changed:
method StringMethods.split(pat: str | re.Pattern | None=…, n=…, expand=…, *, regex: bool | None=…) → method StringMethods.split(pat: str | re.Pattern | None=…, *, n=…, expand: bool=…, regex: bool | None=…) - changed:
method StringMethods.startswith(pat: str | tuple[str, ...], na: Scalar | None=…) -> Series | Index → method StringMethods.startswith(pat: str | tuple[str, ...], na: Scalar | lib.NoDefault=…) -> Series | Index - changed:
method StringMethods.wrap(width, **kwargs) → method StringMethods.wrap(width: int, **kwargs) - changed:
method StringMethods.zfill(width) → method StringMethods.zfill(width: int)
- removed:
function to_time(arg, format=…, infer_time_format=…, errors=…) - changed:
function to_datetime(arg: DatetimeScalar, errors: DateTimeErrorChoices=…, dayfirst: bool=…, yearfirst: bool=…, utc: bool | None=…, format: str | None=…, exact: bool=…, unit: str | None=…, infer_datetime_format: bool=…, origin=…, cache: bool=…) -> Timestamp | (arg: Series | DictConvertible, errors: DateTimeErrorChoices=…, dayfirst: bool=…, yearfirst: bool=…, utc: bool | None=…, format: str | None=… → function to_datetime(arg: DatetimeScalar, errors: DateTimeErrorChoices=…, dayfirst: bool=…, yearfirst: bool=…, utc: bool=…, format: str | None=…, exact: bool=…, unit: str | None=…, infer_datetime_format: bool=…, origin=…, cache: bool=…) -> Timestamp | (arg: Series | DictConvertible, errors: DateTimeErrorChoices=…, dayfirst: bool=…, yearfirst: bool=…, utc: bool=…, format: str | None=…, exact: bool…
- changed:
function to_numeric(arg, errors=…, downcast=…) → function to_numeric(arg, errors: DateTimeErrorChoices=…, downcast: Literal['integer', 'signed', 'unsigned', 'float'] | None=…, dtype_backend: DtypeBackend | lib.NoDefault=…)
- changed:
function to_time(arg, format=…, infer_time_format=…, errors=…) → function to_time(arg, format: str | None=…, infer_time_format: bool=…, errors: DateTimeErrorChoices=…)
- changed:
function jit_user_function(func: Callable, nopython: bool, nogil: bool, parallel: bool) -> Callable → function jit_user_function(func: Callable) -> Callable
- removed:
function maybe_warn_args_and_kwargs(cls, kernel: str, args, kwargs) -> None - changed:
function flex_binary_moment(arg1, arg2, f, pairwise=…) → function flex_binary_moment(arg1, arg2, f, pairwise: bool=…)
- removed:
method ExponentialMovingWindow.vol(bias: bool=…, *args, **kwargs) - changed:
constructor ExponentialMovingWindow(obj: NDFrame, com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool=…, ignore_na: bool=…, axis: Axis=…, times: str | np.ndarray | NDFrame | None=…, method: str=…, *, selection=…) -> None → constructor ExponentialMovingWindow(obj: NDFrame, com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool=…, ignore_na: bool=…, axis: Axis=…, times: np.ndarray | NDFrame | None=…, method: str=…, *, selection=…) -> None - changed:
constructor OnlineExponentialMovingWindow(obj: NDFrame, com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool=…, ignore_na: bool=…, axis: Axis=…, times: str | np.ndarray | NDFrame | None=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…, *, selection=…) -> None → constructor OnlineExponentialMovingWindow(obj: NDFrame, com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool=…, ignore_na: bool=…, axis: Axis=…, times: np.ndarray | NDFrame | None=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…, *, selection=…) -> None - changed:
method ExponentialMovingWindow.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, numeric_only: bool=…, **kwargs) → method ExponentialMovingWindow.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, numeric_only: bool=…) - changed:
method ExponentialMovingWindow.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, bias: bool=…, numeric_only: bool=…, **kwargs) → method ExponentialMovingWindow.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, bias: bool=…, numeric_only: bool=…) - changed:
method ExponentialMovingWindow.mean(numeric_only: bool=…, *args, engine=…, engine_kwargs=…, **kwargs) → method ExponentialMovingWindow.mean(numeric_only: bool=…, engine=…, engine_kwargs=…) - changed:
method ExponentialMovingWindow.online(engine=…, engine_kwargs=…) -> OnlineExponentialMovingWindow → method ExponentialMovingWindow.online(engine: str=…, engine_kwargs=…) -> OnlineExponentialMovingWindow - changed:
method ExponentialMovingWindow.std(bias: bool=…, numeric_only: bool=…, *args, **kwargs) → method ExponentialMovingWindow.std(bias: bool=…, numeric_only: bool=…) - changed:
method ExponentialMovingWindow.sum(numeric_only: bool=…, *args, engine=…, engine_kwargs=…, **kwargs) → method ExponentialMovingWindow.sum(numeric_only: bool=…, engine=…, engine_kwargs=…) - changed:
method ExponentialMovingWindow.var(bias: bool=…, numeric_only: bool=…, *args, **kwargs) → method ExponentialMovingWindow.var(bias: bool=…, numeric_only: bool=…) - changed:
method OnlineExponentialMovingWindow.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, numeric_only: bool=…, **kwargs) → method OnlineExponentialMovingWindow.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, numeric_only: bool=…) - changed:
method OnlineExponentialMovingWindow.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, bias: bool=…, numeric_only: bool=…, **kwargs) → method OnlineExponentialMovingWindow.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, bias: bool=…, numeric_only: bool=…) - changed:
method OnlineExponentialMovingWindow.var(bias: bool=…, *args, **kwargs) → method OnlineExponentialMovingWindow.var(bias: bool=…, numeric_only: bool=…)
- changed:
constructor Expanding(obj: NDFrame, min_periods: int=…, center: bool | None=…, axis: Axis=…, method: str=…, selection=…) -> None → constructor Expanding(obj: NDFrame, min_periods: int=…, axis: Axis=…, method: str=…, selection=…) -> None - changed:
method Expanding.apply(func: Callable[..., Any], raw: bool=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, args: tuple[Any, ...] | None=…, kwargs: dict[str, Any] | None=…) → method Expanding.apply(func: Callable[..., Any], raw: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, args: tuple[Any, ...] | None=…, kwargs: dict[str, Any] | None=…) - changed:
method Expanding.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method Expanding.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…) - changed:
method Expanding.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method Expanding.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…) - changed:
method Expanding.kurt(numeric_only: bool=…, **kwargs) → method Expanding.kurt(numeric_only: bool=…) - changed:
method Expanding.max(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.max(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Expanding.mean(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.mean(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Expanding.median(numeric_only: bool=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.median(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Expanding.min(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.min(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Expanding.quantile(quantile: float, interpolation: QuantileInterpolation=…, numeric_only: bool=…, **kwargs) → method Expanding.quantile(q: float, interpolation: QuantileInterpolation=…, numeric_only: bool=…) - changed:
method Expanding.rank(method: WindowingRankType=…, ascending: bool=…, pct: bool=…, numeric_only: bool=…, **kwargs) → method Expanding.rank(method: WindowingRankType=…, ascending: bool=…, pct: bool=…, numeric_only: bool=…) - changed:
method Expanding.sem(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Expanding.sem(ddof: int=…, numeric_only: bool=…) - changed:
method Expanding.skew(numeric_only: bool=…, **kwargs) → method Expanding.skew(numeric_only: bool=…) - changed:
method Expanding.std(ddof: int=…, numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.std(ddof: int=…, numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Expanding.sum(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.sum(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Expanding.var(ddof: int=…, numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Expanding.var(ddof: int=…, numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…)
- removed:
method BaseWindow.validate() -> None - removed:
property BaseWindow.is_datetimelike -> bool - removed:
property BaseWindow.win_type - changed:
method Rolling.apply(func: Callable[..., Any], raw: bool=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, args: tuple[Any, ...] | None=…, kwargs: dict[str, Any] | None=…) → method Rolling.apply(func: Callable[..., Any], raw: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, args: tuple[Any, ...] | None=…, kwargs: dict[str, Any] | None=…) - changed:
method Rolling.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method Rolling.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…) - changed:
method Rolling.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method Rolling.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…) - changed:
method Rolling.kurt(numeric_only: bool=…, **kwargs) → method Rolling.kurt(numeric_only: bool=…) - changed:
method Rolling.max(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.max(numeric_only: bool=…, *args, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) - changed:
method Rolling.mean(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.mean(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Rolling.median(numeric_only: bool=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.median(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Rolling.min(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.min(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Rolling.quantile(quantile: float, interpolation: QuantileInterpolation=…, numeric_only: bool=…, **kwargs) → method Rolling.quantile(q: float, interpolation: QuantileInterpolation=…, numeric_only: bool=…) - changed:
method Rolling.rank(method: WindowingRankType=…, ascending: bool=…, pct: bool=…, numeric_only: bool=…, **kwargs) → method Rolling.rank(method: WindowingRankType=…, ascending: bool=…, pct: bool=…, numeric_only: bool=…) - changed:
method Rolling.sem(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Rolling.sem(ddof: int=…, numeric_only: bool=…) - changed:
method Rolling.skew(numeric_only: bool=…, **kwargs) → method Rolling.skew(numeric_only: bool=…) - changed:
method Rolling.std(ddof: int=…, numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.std(ddof: int=…, numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Rolling.sum(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.sum(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Rolling.var(ddof: int=…, numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method Rolling.var(ddof: int=…, numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.apply(func: Callable[..., Any], raw: bool=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, args: tuple[Any, ...] | None=…, kwargs: dict[str, Any] | None=…) → method RollingAndExpandingMixin.apply(func: Callable[..., Any], raw: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, args: tuple[Any, ...] | None=…, kwargs: dict[str, Any] | None=…) - changed:
method RollingAndExpandingMixin.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method RollingAndExpandingMixin.corr(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method RollingAndExpandingMixin.cov(other: DataFrame | Series | None=…, pairwise: bool | None=…, ddof: int=…, numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.kurt(numeric_only: bool=…, **kwargs) → method RollingAndExpandingMixin.kurt(numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.max(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.max(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.mean(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.mean(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.median(numeric_only: bool=…, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.median(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.min(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.min(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.quantile(quantile: float, interpolation: QuantileInterpolation=…, numeric_only: bool=…, **kwargs) → method RollingAndExpandingMixin.quantile(q: float, interpolation: QuantileInterpolation=…, numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.rank(method: WindowingRankType=…, ascending: bool=…, pct: bool=…, numeric_only: bool=…, **kwargs) → method RollingAndExpandingMixin.rank(method: WindowingRankType=…, ascending: bool=…, pct: bool=…, numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.sem(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method RollingAndExpandingMixin.sem(ddof: int=…, numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.skew(numeric_only: bool=…, **kwargs) → method RollingAndExpandingMixin.skew(numeric_only: bool=…) - changed:
method RollingAndExpandingMixin.std(ddof: int=…, numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.std(ddof: int=…, numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.sum(numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.sum(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method RollingAndExpandingMixin.var(ddof: int=…, numeric_only: bool=…, *args, engine: str | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method RollingAndExpandingMixin.var(ddof: int=…, numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method Window.mean(numeric_only: bool=…, *args, **kwargs) → method Window.mean(numeric_only: bool=…, **kwargs) - changed:
method Window.std(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Window.std(ddof: int=…, numeric_only: bool=…, **kwargs) - changed:
method Window.sum(numeric_only: bool=…, *args, **kwargs) → method Window.sum(numeric_only: bool=…, **kwargs) - changed:
method Window.var(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Window.var(ddof: int=…, numeric_only: bool=…, **kwargs)
- removed:
class AccessorRegistrationWarning(Warning) - added:
class InvalidComparison(Exception) - added:
class LossySetitemError(Exception) - added:
class NoBufferPresent(Exception) - added:
export InvalidVersion
- added:
function waitForNewPaste(timeout=…) - added:
function waitForPaste(timeout=…)
- changed:
function read_clipboard(sep: str=…, **kwargs) → function read_clipboard(sep: str=…, dtype_backend: DtypeBackend | lib.NoDefault=…, **kwargs)
- added:
function dedup_names(names: Sequence[Hashable], is_potential_multiindex: bool) -> Sequence[Hashable] - added:
function is_potential_multi_index(columns: Sequence[Hashable] | MultiIndex, index_col: bool | Sequence[int] | None=…) -> bool - added:
variable extension_to_compression
- removed:
function generic_parser(parse_func, *cols) -> np.ndarray - removed:
function parse_all_fields(year_col, month_col, day_col, hour_col, minute_col, second_col) -> npt.NDArray[np.object_] - removed:
function parse_date_fields(year_col, month_col, day_col) -> npt.NDArray[np.object_] - removed:
function parse_date_time(date_col, time_col) -> npt.NDArray[np.object_]
- changed:
function read_feather(path: FilePath | ReadBuffer[bytes], columns: Sequence[Hashable] | None=…, use_threads: bool=…, storage_options: StorageOptions=…) → function read_feather(path: FilePath | ReadBuffer[bytes], columns: Sequence[Hashable] | None=…, use_threads: bool=…, storage_options: StorageOptions | None=…, dtype_backend: DtypeBackend | lib.NoDefault=…) -> DataFrame - changed:
function to_feather(df: DataFrame, path: FilePath | WriteBuffer[bytes], storage_options: StorageOptions=…, **kwargs) -> None → function to_feather(df: DataFrame, path: FilePath | WriteBuffer[bytes], storage_options: StorageOptions | None=…, **kwargs: Any) -> None
- changed:
method CSSResolver.size_to_pt(in_val, em_pt=…, conversions=…) → method CSSResolver.size_to_pt(in_val, em_pt=…, conversions=…) -> str
- removed:
property CSVFormatter.header -> bool | Sequence[str] - removed:
property CSVFormatter.write_cols -> Sequence[Hashable] - changed:
field CSVFormatter.cols: np.ndarray → field CSVFormatter.cols: npt.NDArray[np.object_] - added:
property CSVFormatter.header -> bool | SequenceNotStr[str] - added:
property CSVFormatter.write_cols -> SequenceNotStr[Hashable]
- changed:
method ExcelFormatter.write(writer, sheet_name: str=…, startrow: int=…, startcol: int=…, freeze_panes: tuple[int, int] | None=…, engine: str | None=…, storage_options: StorageOptions=…) -> None → method ExcelFormatter.write(writer: FilePath | WriteExcelBuffer | ExcelWriter, sheet_name: str=…, startrow: int=…, startcol: int=…, freeze_panes: tuple[int, int] | None=…, engine: str | None=…, storage_options: StorageOptions | None=…, engine_kwargs: dict | None=…) -> None
- removed:
class CategoricalFormatter - removed:
class Datetime64Formatter(GenericArrayFormatter) - removed:
class Datetime64TZFormatter(Datetime64Formatter) - removed:
class EastAsianTextAdjustment(TextAdjustment) - removed:
class ExtensionArrayFormatter(GenericArrayFormatter) - removed:
class GenericArrayFormatter - removed:
class IntArrayFormatter(GenericArrayFormatter) - removed:
class TextAdjustment - removed:
class Timedelta64Formatter(GenericArrayFormatter) - removed:
constructor CategoricalFormatter(categorical: Categorical, buf: IO[str] | None=…, length: bool=…, na_rep: str=…, footer: bool=…) -> None - removed:
constructor Datetime64Formatter(values: np.ndarray | Series | DatetimeIndex | DatetimeArray, nat_rep: str=…, date_format: None=…, **kwargs) -> None - removed:
constructor EastAsianTextAdjustment() -> None - removed:
constructor GenericArrayFormatter(values: Any, digits: int=…, formatter: Callable | None=…, na_rep: str=…, space: str | int=…, float_format: FloatFormatType | None=…, justify: str=…, decimal: str=…, quoting: int | None=…, fixed_width: bool=…, leading_space: bool | None=…) -> None - removed:
constructor TextAdjustment() -> None - removed:
constructor Timedelta64Formatter(values: np.ndarray | TimedeltaIndex, nat_rep: str=…, box: bool=…, **kwargs) -> None - removed:
function get_adjustment() -> TextAdjustment - removed:
function get_buffer(buf: FilePath | WriteBuffer[str] | None, encoding: str | None=…) -> Iterator[WriteBuffer[str]] | Iterator[StringIO] - removed:
function get_format_datetime64_from_values(values: np.ndarray | DatetimeArray | DatetimeIndex, date_format: str | None) -> str | None - removed:
function is_dates_only(values: np.ndarray | DatetimeArray | Index | DatetimeIndex) -> bool - removed:
method CategoricalFormatter.to_string() -> str - removed:
method DataFrameRenderer.to_latex(buf: FilePath | WriteBuffer[str] | None=…, column_format: str | None=…, longtable: bool=…, encoding: str | None=…, multicolumn: bool=…, multicolumn_format: str | None=…, multirow: bool=…, caption: str | tuple[str, str] | None=…, label: str | None=…, position: str | None=…) -> str | None - removed:
method EastAsianTextAdjustment.justify(texts: Iterable[str], max_len: int, mode: str=…) -> list[str] - removed:
method EastAsianTextAdjustment.len(text: str) -> int - removed:
method GenericArrayFormatter.get_result() -> list[str] - removed:
method TextAdjustment.adjoin(space: int, *lists, **kwargs) -> str - removed:
method TextAdjustment.justify(texts: Any, max_len: int, mode: str=…) -> list[str] - removed:
method TextAdjustment.len(text: str) -> int - changed:
class FloatArrayFormatter(GenericArrayFormatter) → class FloatArrayFormatter(_GenericArrayFormatter) - changed:
constructor DataFrameFormatter(frame: DataFrame, columns: Sequence[Hashable] | None=…, col_space: ColspaceArgType | None=…, header: bool | Sequence[str]=…, index: bool=…, na_rep: str=…, formatters: FormattersType | None=…, justify: str | None=…, float_format: FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, max_rows: int | None=…, min_rows: int | None=…, max_cols: int | Non… → constructor DataFrameFormatter(frame: DataFrame, columns: Axes | None=…, col_space: ColspaceArgType | None=…, header: bool | SequenceNotStr[str]=…, index: bool=…, na_rep: str=…, formatters: FormattersType | None=…, justify: str | None=…, float_format: FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, max_rows: int | None=…, min_rows: int | None=…, max_cols: int | None=…, sho… - changed:
constructor SeriesFormatter(series: Series, buf: IO[str] | None=…, length: bool | str=…, header: bool=…, index: bool=…, na_rep: str=…, name: bool=…, float_format: str | None=…, dtype: bool=…, max_rows: int | None=…, min_rows: int | None=…) -> None → constructor SeriesFormatter(series: Series, *, length: bool | str=…, header: bool=…, index: bool=…, na_rep: str=…, name: bool=…, float_format: str | None=…, dtype: bool=…, max_rows: int | None=…, min_rows: int | None=…) -> None - changed:
function format_array(values: Any, formatter: Callable | None, float_format: FloatFormatType | None=…, na_rep: str=…, digits: int | None=…, space: str | int | None=…, justify: str=…, decimal: str=…, leading_space: bool | None=…, quoting: int | None=…) -> list[str] → function format_array(values: ArrayLike, formatter: Callable | None, float_format: FloatFormatType | None=…, na_rep: str=…, digits: int | None=…, space: str | int | None=…, justify: str=…, decimal: str=…, leading_space: bool | None=…, quoting: int | None=…, fallback_formatter: Callable | None=…) -> list[str] - changed:
function get_format_timedelta64(values: np.ndarray | TimedeltaIndex | TimedeltaArray, nat_rep: str=…, box: bool=…) -> Callable → function get_format_timedelta64(values: TimedeltaArray, nat_rep: str | float=…, box: bool=…) -> Callable - added:
function get_precision(array: np.ndarray | Sequence[float]) -> int - added:
variable VALID_JUSTIFY_PARAMETERS
- removed:
class BaseInfo(ABC) - removed:
class DataFrameInfoPrinter(InfoPrinterAbstract) - removed:
class DataFrameTableBuilder(TableBuilderAbstract) - removed:
class DataFrameTableBuilderNonVerbose(DataFrameTableBuilder) - removed:
class DataFrameTableBuilderVerbose(DataFrameTableBuilder, TableBuilderVerboseMixin) - removed:
class InfoPrinterAbstract - removed:
class SeriesInfoPrinter(InfoPrinterAbstract) - removed:
class SeriesTableBuilder(TableBuilderAbstract) - removed:
class SeriesTableBuilderNonVerbose(SeriesTableBuilder) - removed:
class SeriesTableBuilderVerbose(SeriesTableBuilder, TableBuilderVerboseMixin) - removed:
class TableBuilderAbstract(ABC) - removed:
class TableBuilderVerboseMixin(TableBuilderAbstract) - removed:
constructor DataFrameInfoPrinter(info: DataFrameInfo, max_cols: int | None=…, verbose: bool | None=…, show_counts: bool | None=…) -> None - removed:
constructor DataFrameTableBuilder(*, info: DataFrameInfo) -> None - removed:
constructor DataFrameTableBuilderVerbose(*, info: DataFrameInfo, with_counts: bool) -> None - removed:
constructor SeriesInfoPrinter(info: SeriesInfo, verbose: bool | None=…, show_counts: bool | None=…) -> None - removed:
constructor SeriesTableBuilder(*, info: SeriesInfo) -> None - removed:
constructor SeriesTableBuilderVerbose(*, info: SeriesInfo, with_counts: bool) -> None - removed:
field BaseInfo.data: DataFrame | Series - removed:
field BaseInfo.memory_usage: bool | str - removed:
field TableBuilderAbstract.info: BaseInfo - removed:
field TableBuilderVerboseMixin.SPACING: str - removed:
field TableBuilderVerboseMixin.gross_column_widths: Sequence[int] - removed:
field TableBuilderVerboseMixin.strrows: Sequence[Sequence[str]] - removed:
field TableBuilderVerboseMixin.with_counts: bool - removed:
method BaseInfo.render(*, buf: WriteBuffer[str] | None, max_cols: int | None, verbose: bool | None, show_counts: bool | None) -> None - removed:
method DataFrameTableBuilder.add_memory_usage_line() -> None - removed:
method DataFrameTableBuilder.get_lines() -> list[str] - removed:
method DataFrameTableBuilderNonVerbose.add_columns_summary_line() -> None - removed:
method DataFrameTableBuilderVerbose.add_columns_summary_line() -> None - removed:
method InfoPrinterAbstract.to_buffer(buf: WriteBuffer[str] | None=…) -> None - removed:
method SeriesTableBuilder.add_memory_usage_line() -> None - removed:
method SeriesTableBuilder.get_lines() -> list[str] - removed:
method SeriesTableBuilderVerbose.add_series_name_line() -> None - removed:
method TableBuilderAbstract.add_dtypes_line() -> None - removed:
method TableBuilderAbstract.add_index_range_line() -> None - removed:
method TableBuilderAbstract.add_object_type_line() -> None - removed:
method TableBuilderAbstract.get_lines() -> list[str] - removed:
method TableBuilderVerboseMixin.add_body_lines() -> None - removed:
method TableBuilderVerboseMixin.add_header_line() -> None - removed:
method TableBuilderVerboseMixin.add_separator_line() -> None - removed:
property BaseInfo.dtype_counts -> Mapping[str, int] - removed:
property BaseInfo.dtypes -> Iterable[Dtype] - removed:
property BaseInfo.memory_usage_bytes -> int - removed:
property BaseInfo.memory_usage_string -> str - removed:
property BaseInfo.non_null_counts -> Sequence[int] - removed:
property BaseInfo.size_qualifier -> str - removed:
property DataFrameInfoPrinter.col_count -> int - removed:
property DataFrameInfoPrinter.exceeds_info_cols -> bool - removed:
property DataFrameInfoPrinter.exceeds_info_rows -> bool - removed:
property DataFrameInfoPrinter.max_rows -> int - removed:
property DataFrameTableBuilder.col_count -> int - removed:
property DataFrameTableBuilder.data -> DataFrame - removed:
property DataFrameTableBuilder.ids -> Index - removed:
property DataFrameTableBuilderVerbose.headers -> Sequence[str] - removed:
property SeriesTableBuilder.data -> Series - removed:
property SeriesTableBuilderVerbose.headers -> Sequence[str] - removed:
property TableBuilderAbstract.data -> DataFrame | Series - removed:
property TableBuilderAbstract.display_memory_usage -> bool - removed:
property TableBuilderAbstract.dtype_counts -> Mapping[str, int] - removed:
property TableBuilderAbstract.dtypes -> Iterable[Dtype] - removed:
property TableBuilderAbstract.memory_usage_string -> str - removed:
property TableBuilderAbstract.non_null_counts -> Sequence[int] - removed:
property TableBuilderVerboseMixin.header_column_widths -> Sequence[int] - removed:
property TableBuilderVerboseMixin.headers -> Sequence[str] - removed:
variable null_counts_sub - changed:
class DataFrameInfo(BaseInfo) → class DataFrameInfo(_BaseInfo) - changed:
class SeriesInfo(BaseInfo) → class SeriesInfo(_BaseInfo)
- removed:
class GenericTableBuilder(TableBuilderAbstract) - removed:
class LatexFormatter - removed:
class LongTableBuilder(GenericTableBuilder) - removed:
class RegularTableBuilder(GenericTableBuilder) - removed:
class RowBodyIterator(RowStringIterator) - removed:
class RowHeaderIterator(RowStringIterator) - removed:
class RowStringConverter(ABC) - removed:
class RowStringIterator(RowStringConverter) - removed:
class TableBuilderAbstract(ABC) - removed:
class TabularBuilder(GenericTableBuilder) - removed:
constructor LatexFormatter(formatter: DataFrameFormatter, longtable: bool=…, column_format: str | None=…, multicolumn: bool=…, multicolumn_format: str | None=…, multirow: bool=…, caption: str | tuple[str, str] | None=…, label: str | None=…, position: str | None=…) -> None - removed:
constructor RowStringConverter(formatter: DataFrameFormatter, multicolumn: bool=…, multicolumn_format: str | None=…, multirow: bool=…) -> None - removed:
constructor TableBuilderAbstract(formatter: DataFrameFormatter, column_format: str | None=…, multicolumn: bool=…, multicolumn_format: str | None=…, multirow: bool=…, caption: str | None=…, short_caption: str | None=…, label: str | None=…, position: str | None=…) -> None - removed:
method LatexFormatter.to_string() -> str - removed:
method RowStringConverter.get_strrow(row_num: int) -> str - removed:
method TableBuilderAbstract.get_result() -> str - removed:
property GenericTableBuilder.env_body -> str - removed:
property GenericTableBuilder.header -> str - removed:
property GenericTableBuilder.middle_separator -> str - removed:
property GenericTableBuilder.top_separator -> str - removed:
property LatexFormatter.builder -> TableBuilderAbstract - removed:
property LatexFormatter.column_format -> str | None - removed:
property LongTableBuilder.bottom_separator -> str - removed:
property LongTableBuilder.env_begin -> str - removed:
property LongTableBuilder.env_end -> str - removed:
property LongTableBuilder.middle_separator -> str - removed:
property RegularTableBuilder.bottom_separator -> str - removed:
property RegularTableBuilder.env_begin -> str - removed:
property RegularTableBuilder.env_end -> str - removed:
property RowStringConverter.column_levels -> int - removed:
property RowStringConverter.header_levels -> int - removed:
property RowStringConverter.index_levels -> int - removed:
property TableBuilderAbstract.bottom_separator -> str - removed:
property TableBuilderAbstract.env_begin -> str - removed:
property TableBuilderAbstract.env_body -> str - removed:
property TableBuilderAbstract.env_end -> str - removed:
property TableBuilderAbstract.header -> str - removed:
property TableBuilderAbstract.middle_separator -> str - removed:
property TableBuilderAbstract.top_separator -> str - removed:
property TabularBuilder.bottom_separator -> str - removed:
property TabularBuilder.env_begin -> str - removed:
property TabularBuilder.env_end -> str
- removed:
function justify(texts: Iterable[str], max_len: int, mode: str=…) -> list[str] - changed:
class PrettyDict(Dict[_KT, _VT]) → class PrettyDict(dict[_KT, _VT]) - added:
function get_adjustment() -> _TextAdjustment
- removed:
method Styler.hide_columns(subset: Subset | None=…, level: Level | list[Level] | None=…, names: bool=…) -> Styler - removed:
method Styler.hide_index(subset: Subset | None=…, level: Level | list[Level] | None=…, names: bool=…) -> Styler - removed:
method Styler.render(sparse_index: bool | None=…, sparse_columns: bool | None=…, **kwargs) -> str - removed:
method Styler.set_na_rep(na_rep: str) -> StylerRenderer - removed:
method Styler.set_precision(precision: int) -> StylerRenderer - removed:
method Styler.where(cond: Callable, value: str, other: str | None=…, subset: Subset | None=…, **kwargs) -> Styler - removed:
variable buf - removed:
variable color - removed:
variable encoding - removed:
variable no_mpl_message - removed:
variable props - removed:
variable subset - changed:
constructor Styler(data: DataFrame | Series, precision: int | None=…, table_styles: CSSStyles | None=…, uuid: str | None=…, caption: str | tuple | None=…, table_attributes: str | None=…, cell_ids: bool=…, na_rep: str | None=…, uuid_len: int=…, decimal: str | None=…, thousands: str | None=…, escape: str | None=…, formatter: ExtFormatter | None=…) -> None → constructor Styler(data: DataFrame | Series, precision: int | None=…, table_styles: CSSStyles | None=…, uuid: str | None=…, caption: str | tuple | list | None=…, table_attributes: str | None=…, cell_ids: bool=…, na_rep: str | None=…, uuid_len: int=…, decimal: str | None=…, thousands: str | None=…, escape: str | None=…, formatter: ExtFormatter | None=…) -> None - changed:
method Styler.apply_index(func: Callable, axis: int | str=…, level: Level | list[Level] | None=…, **kwargs) -> Styler → method Styler.apply_index(func: Callable, axis: AxisInt | str=…, level: Level | list[Level] | None=…, **kwargs) -> Styler - changed:
method Styler.applymap_index(func: Callable, axis: int | str=…, level: Level | list[Level] | None=…, **kwargs) -> Styler → method Styler.applymap_index(func: Callable, axis: AxisInt | str=…, level: Level | list[Level] | None=…, **kwargs) -> Styler - changed:
method Styler.background_gradient(cmap=…, low: float=…, high: float=…, axis: Axis | None=…, subset: Subset | None=…, text_color_threshold: float=…, vmin: float | None=…, vmax: float | None=…, gmap: Sequence | None=…) -> Styler → method Styler.background_gradient(cmap: str | Colormap=…, low: float=…, high: float=…, axis: Axis | None=…, subset: Subset | None=…, text_color_threshold: float=…, vmin: float | None=…, vmax: float | None=…, gmap: Sequence | None=…) -> Styler - changed:
method Styler.highlight_between(subset: Subset | None=…, color: str=…, axis: Axis | None=…, left: Scalar | Sequence | None=…, right: Scalar | Sequence | None=…, inclusive: str=…, props: str | None=…) -> Styler → method Styler.highlight_between(subset: Subset | None=…, color: str=…, axis: Axis | None=…, left: Scalar | Sequence | None=…, right: Scalar | Sequence | None=…, inclusive: IntervalClosedType=…, props: str | None=…) -> Styler - changed:
method Styler.highlight_null(color: str | None=…, subset: Subset | None=…, props: str | None=…, null_color: str | lib.NoDefault=…) -> Styler → method Styler.highlight_null(color: str=…, subset: Subset | None=…, props: str | None=…) -> Styler - changed:
method Styler.highlight_quantile(subset: Subset | None=…, color: str=…, axis: Axis | None=…, q_left: float=…, q_right: float=…, interpolation: QuantileInterpolation=…, inclusive: str=…, props: str | None=…) -> Styler → method Styler.highlight_quantile(subset: Subset | None=…, color: str=…, axis: Axis | None=…, q_left: float=…, q_right: float=…, interpolation: QuantileInterpolation=…, inclusive: IntervalClosedType=…, props: str | None=…) -> Styler - changed:
method Styler.set_caption(caption: str | tuple) -> Styler → method Styler.set_caption(caption: str | tuple | list) -> Styler - changed:
method Styler.set_table_styles(table_styles: dict[Any, CSSStyles] | CSSStyles | None=…, axis: int=…, overwrite: bool=…, css_class_names: dict[str, str] | None=…) -> Styler → method Styler.set_table_styles(table_styles: dict[Any, CSSStyles] | CSSStyles | None=…, axis: AxisInt=…, overwrite: bool=…, css_class_names: dict[str, str] | None=…) -> Styler - changed:
method Styler.text_gradient(cmap=…, low: float=…, high: float=…, axis: Axis | None=…, subset: Subset | None=…, vmin: float | None=…, vmax: float | None=…, gmap: Sequence | None=…) -> Styler → method Styler.text_gradient(cmap: str | Colormap=…, low: float=…, high: float=…, axis: Axis | None=…, subset: Subset | None=…, vmin: float | None=…, vmax: float | None=…, gmap: Sequence | None=…) -> Styler - changed:
method Styler.to_excel(excel_writer, sheet_name: str=…, na_rep: str=…, float_format: str | None=…, columns: Sequence[Hashable] | None=…, header: Sequence[Hashable] | bool=…, index: bool=…, index_label: IndexLabel | None=…, startrow: int=…, startcol: int=…, engine: str | None=…, merge_cells: bool=…, encoding: str | None=…, inf_rep: str=…, verbose: bool=…, freeze_panes: tuple[int, int] | None=…, st… → method Styler.to_excel(excel_writer: FilePath | WriteExcelBuffer | ExcelWriter, sheet_name: str=…, na_rep: str=…, float_format: str | None=…, columns: Sequence[Hashable] | None=…, header: Sequence[Hashable] | bool=…, index: bool=…, index_label: IndexLabel | None=…, startrow: int=…, startcol: int=…, engine: str | None=…, merge_cells: bool=…, encoding: str | None=…, inf_rep: str=…, verbose: bool=…,… - changed:
method Styler.to_string(buf: FilePath | WriteBuffer[str], *, encoding=…, sparse_index: bool | None=…, sparse_columns: bool | None=…, max_rows: int | None=…, max_columns: int | None=…, delimiter: str=…) -> None | (buf: None=…, *, encoding=…, sparse_index: bool | None=…, sparse_columns: bool | None=…, max_rows: int | None=…, max_columns: int | None=…, delimiter: str=…) -> str → method Styler.to_string(buf: FilePath | WriteBuffer[str], *, encoding: str | None=…, sparse_index: bool | None=…, sparse_columns: bool | None=…, max_rows: int | None=…, max_columns: int | None=…, delimiter: str=…) -> None | (buf: None=…, *, encoding: str | None=…, sparse_index: bool | None=…, sparse_columns: bool | None=…, max_rows: int | None=…, max_columns: int | None=…, delimiter: str=…) -> str - changed:
static method Styler.from_custom_template(searchpath, html_table: str | None=…, html_style: str | None=…) → static method Styler.from_custom_template(searchpath: Sequence[str], html_table: str | None=…, html_style: str | None=…) -> type[Styler] - added:
method Styler.map(func: Callable, subset: Subset | None=…, **kwargs) -> Styler - added:
method Styler.map_index(func: Callable, axis: AxisInt | str=…, level: Level | list[Level] | None=…, **kwargs) -> Styler - added:
variable buffering_args - added:
variable coloring_args - added:
variable encoding_args - added:
variable properties_args - added:
variable subset_args
- changed:
constructor StylerRenderer(data: DataFrame | Series, uuid: str | None=…, uuid_len: int=…, table_styles: CSSStyles | None=…, table_attributes: str | None=…, caption: str | tuple | None=…, cell_ids: bool=…, precision: int | None=…) -> None → constructor StylerRenderer(data: DataFrame | Series, uuid: str | None=…, uuid_len: int=…, table_styles: CSSStyles | None=…, table_attributes: str | None=…, caption: str | tuple | list | None=…, cell_ids: bool=…, precision: int | None=…) -> None - changed:
method StylerRenderer.format_index(formatter: ExtFormatter | None=…, axis: int | str=…, level: Level | list[Level] | None=…, na_rep: str | None=…, precision: int | None=…, decimal: str=…, thousands: str | None=…, escape: str | None=…, hyperlinks: str | None=…) -> StylerRenderer → method StylerRenderer.format_index(formatter: ExtFormatter | None=…, axis: Axis=…, level: Level | list[Level] | None=…, na_rep: str | None=…, precision: int | None=…, decimal: str=…, thousands: str | None=…, escape: str | None=…, hyperlinks: str | None=…) -> StylerRenderer
- removed:
class BaseXMLFormatter - removed:
constructor BaseXMLFormatter(frame: DataFrame, path_or_buffer: FilePath | WriteBuffer[bytes] | WriteBuffer[str] | None=…, index: bool=…, root_name: str | None=…, row_name: str | None=…, na_rep: str | None=…, attr_cols: list[str] | None=…, elem_cols: list[str] | None=…, namespaces: dict[str | None, str] | None=…, prefix: str | None=…, encoding: str=…, xml_declaration: bool | None=…, pretty_print:… - removed:
method BaseXMLFormatter.build_attribs(d: dict[str, Any], elem_row: Any) -> Any - removed:
method BaseXMLFormatter.build_elems(d: dict[str, Any], elem_row: Any) -> None - removed:
method BaseXMLFormatter.build_tree() -> bytes - removed:
method BaseXMLFormatter.get_prefix_uri() -> str - removed:
method BaseXMLFormatter.handle_indexes() -> None - removed:
method BaseXMLFormatter.other_namespaces() -> dict - removed:
method BaseXMLFormatter.process_dataframe() -> dict[int | str, dict[str, Any]] - removed:
method BaseXMLFormatter.validate_columns() -> None - removed:
method BaseXMLFormatter.validate_encoding() -> None - removed:
method BaseXMLFormatter.write_output() -> str | None - removed:
method EtreeXMLFormatter.add_declaration() -> bytes - removed:
method EtreeXMLFormatter.build_elems(d: dict[str, Any], elem_row: Any) -> None - removed:
method EtreeXMLFormatter.build_tree() -> bytes - removed:
method EtreeXMLFormatter.get_prefix_uri() -> str - removed:
method EtreeXMLFormatter.prettify_tree() -> bytes - removed:
method EtreeXMLFormatter.remove_declaration() -> bytes - removed:
method LxmlXMLFormatter.build_elems(d: dict[str, Any], elem_row: Any) -> None - removed:
method LxmlXMLFormatter.build_tree() -> bytes - removed:
method LxmlXMLFormatter.convert_empty_str_key() -> None - removed:
method LxmlXMLFormatter.get_prefix_uri() -> str - removed:
method LxmlXMLFormatter.transform_doc() -> bytes - changed:
class EtreeXMLFormatter(BaseXMLFormatter) → class EtreeXMLFormatter(_BaseXMLFormatter) - changed:
class LxmlXMLFormatter(BaseXMLFormatter) → class LxmlXMLFormatter(_BaseXMLFormatter)
- changed:
function read_gbq(query: str, project_id: str | None=…, index_col: str | None=…, col_order: list[str] | None=…, reauth: bool=…, auth_local_webserver: bool=…, dialect: str | None=…, location: str | None=…, configuration: dict[str, Any] | None=…, credentials=…, use_bqstorage_api: bool | None=…, max_results: int | None=…, progress_bar_type: str | None=…) -> DataFrame → function read_gbq(query: str, project_id: str | None=…, index_col: str | None=…, col_order: list[str] | None=…, reauth: bool=…, auth_local_webserver: bool=…, dialect: str | None=…, location: str | None=…, configuration: dict[str, Any] | None=…, credentials: Credentials | None=…, use_bqstorage_api: bool | None=…, max_results: int | None=…, progress_bar_type: str | None=…) -> DataFrame - changed:
function to_gbq(dataframe: DataFrame, destination_table: str, project_id: str | None=…, chunksize: int | None=…, reauth: bool=…, if_exists: str=…, auth_local_webserver: bool=…, table_schema: list[dict[str, str]] | None=…, location: str | None=…, progress_bar: bool=…, credentials=…) -> None → function to_gbq(dataframe: DataFrame, destination_table: str, project_id: str | None=…, chunksize: int | None=…, reauth: bool=…, if_exists: str=…, auth_local_webserver: bool=…, table_schema: list[dict[str, str]] | None=…, location: str | None=…, progress_bar: bool=…, credentials: Credentials | None=…) -> None
- changed:
function read_html(io: FilePath | ReadBuffer[str], match: str | Pattern=…, flavor: str | None=…, header: int | Sequence[int] | None=…, index_col: int | Sequence[int] | None=…, skiprows: int | Sequence[int] | slice | None=…, attrs: dict[str, str] | None=…, parse_dates: bool=…, thousands: str | None=…, encoding: str | None=…, decimal: str=…, converters: dict | None=…, na_values: Iterable[object] |… → function read_html(io: FilePath | ReadBuffer[str], *, match: str | Pattern=…, flavor: HTMLFlavors | Sequence[HTMLFlavors] | None=…, header: int | Sequence[int] | None=…, index_col: int | Sequence[int] | None=…, skiprows: int | Sequence[int] | slice | None=…, attrs: dict[str, str] | None=…, parse_dates: bool=…, thousands: str | None=…, encoding: str | None=…, decimal: str=…, converters: dict | Non…
- removed:
export _json_normalize - removed:
export dumps - removed:
export json_normalize - removed:
export loads - added:
export ujson_dumps - added:
export ujson_loads
- changed:
function read_orc(path: FilePath | ReadBuffer[bytes], columns: list[str] | None=…, **kwargs) -> DataFrame → function read_orc(path: FilePath | ReadBuffer[bytes], columns: list[str] | None=…, dtype_backend: DtypeBackend | lib.NoDefault=…, filesystem: pyarrow.fs.FileSystem | fsspec.spec.AbstractFileSystem | None=…, **kwargs: Any) -> DataFrame
- changed:
function read_parquet(path: FilePath | ReadBuffer[bytes], engine: str=…, columns: list[str] | None=…, storage_options: StorageOptions=…, use_nullable_dtypes: bool=…, **kwargs) -> DataFrame → function read_parquet(path: FilePath | ReadBuffer[bytes], engine: str=…, columns: list[str] | None=…, storage_options: StorageOptions | None=…, use_nullable_dtypes: bool | lib.NoDefault=…, dtype_backend: DtypeBackend | lib.NoDefault=…, filesystem: Any=…, filters: list[tuple] | list[list[tuple]] | None=…, **kwargs) -> DataFrame - changed:
function to_parquet(df: DataFrame, path: FilePath | WriteBuffer[bytes] | None=…, engine: str=…, compression: str | None=…, index: bool | None=…, storage_options: StorageOptions=…, partition_cols: list[str] | None=…, **kwargs) -> bytes | None → function to_parquet(df: DataFrame, path: FilePath | WriteBuffer[bytes] | None=…, engine: str=…, compression: str | None=…, index: bool | None=…, storage_options: StorageOptions | None=…, partition_cols: list[str] | None=…, filesystem: Any=…, **kwargs) -> bytes | None - changed:
method FastParquetImpl.read(path, columns=…, storage_options: StorageOptions=…, **kwargs) -> DataFrame → method FastParquetImpl.read(path, columns=…, filters=…, storage_options: StorageOptions | None=…, filesystem=…, **kwargs) -> DataFrame - changed:
method FastParquetImpl.write(df: DataFrame, path, compression=…, index=…, partition_cols=…, storage_options: StorageOptions=…, **kwargs) -> None → method FastParquetImpl.write(df: DataFrame, path, compression: Literal['snappy', 'gzip', 'brotli'] | None=…, index=…, partition_cols=…, storage_options: StorageOptions | None=…, filesystem=…, **kwargs) -> None - changed:
method PyArrowImpl.read(path, columns=…, use_nullable_dtypes=…, storage_options: StorageOptions=…, **kwargs) -> DataFrame → method PyArrowImpl.read(path, columns=…, filters=…, use_nullable_dtypes: bool=…, dtype_backend: DtypeBackend | lib.NoDefault=…, storage_options: StorageOptions | None=…, filesystem=…, **kwargs) -> DataFrame - changed:
method PyArrowImpl.write(df: DataFrame, path: FilePath | WriteBuffer[bytes], compression: str | None=…, index: bool | None=…, storage_options: StorageOptions=…, partition_cols: list[str] | None=…, **kwargs) -> None → method PyArrowImpl.write(df: DataFrame, path: FilePath | WriteBuffer[bytes], compression: str | None=…, index: bool | None=…, storage_options: StorageOptions | None=…, partition_cols: list[str] | None=…, filesystem=…, **kwargs) -> None
- added:
field ParserBase.cache_dates: bool - added:
field ParserBase.dayfirst: bool - added:
field ParserBase.keep_date_col: bool - added:
field ParserBase.keep_default_na: bool - added:
field ParserBase.usecols_dtype: str | None
- added:
method PythonParser.num() -> re.Pattern
- changed:
function read_csv(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, sep: str | None | lib.NoDefault=…, delimiter: str | None | lib.NoDefault=…, header: int | Sequence[int] | None | Literal['infer']=…, names: Sequence[Hashable] | None | lib.NoDefault=…, index_col: IndexLabel | Literal[False] | None=…, usecols=…, squeeze: bool | None=…, prefix: str | lib.NoDefault=…, mang… → function read_csv(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, sep: str | None | lib.NoDefault=…, delimiter: str | None | lib.NoDefault=…, header: int | Sequence[int] | None | Literal['infer']=…, names: Sequence[Hashable] | None | lib.NoDefault=…, index_col: IndexLabel | Literal[False] | None=…, usecols: UsecolsArgType=…, dtype: DtypeArg | None=…, engine: CSVEngine… - changed:
function read_fwf(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], colspecs: Sequence[tuple[int, int]] | str | None=…, widths: Sequence[int] | None=…, infer_nrows: int=…, **kwds) -> DataFrame | TextFileReader → function read_fwf(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, colspecs: Sequence[tuple[int, int]] | str | None=…, widths: Sequence[int] | None=…, infer_nrows: int=…, dtype_backend: DtypeBackend | lib.NoDefault=…, iterator: Literal[True], chunksize: int | None=…, **kwds) -> TextFileReader | (filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str],… - changed:
function read_table(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, sep: str | None | lib.NoDefault=…, delimiter: str | None | lib.NoDefault=…, header: int | Sequence[int] | None | Literal['infer']=…, names: Sequence[Hashable] | None | lib.NoDefault=…, index_col: IndexLabel | Literal[False] | None=…, usecols=…, squeeze: bool | None=…, prefix: str | lib.NoDefault=…, ma… → function read_table(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, sep: str | None | lib.NoDefault=…, delimiter: str | None | lib.NoDefault=…, header: int | Sequence[int] | None | Literal['infer']=…, names: Sequence[Hashable] | None | lib.NoDefault=…, index_col: IndexLabel | Literal[False] | None=…, usecols: UsecolsArgType=…, dtype: DtypeArg | None=…, engine: CSVEngi… - changed:
function validate_integer(name, val: None, min_val=…) -> None | (name, val: float, min_val=…) -> int | (name, val: int | None, min_val=…) -> int | None → function validate_integer(name: str, val: None, min_val: int=…) -> None | (name: str, val: float, min_val: int=…) -> int | (name: str, val: int | None, min_val: int=…) -> int | None
- changed:
function read_pickle(filepath_or_buffer: FilePath | ReadPickleBuffer, compression: CompressionOptions=…, storage_options: StorageOptions=…) → function read_pickle(filepath_or_buffer: FilePath | ReadPickleBuffer, compression: CompressionOptions=…, storage_options: StorageOptions | None=…) -> DataFrame | Series - changed:
function to_pickle(obj: Any, filepath_or_buffer: FilePath | WriteBuffer[bytes], compression: CompressionOptions=…, protocol: int=…, storage_options: StorageOptions=…) -> None → function to_pickle(obj: Any, filepath_or_buffer: FilePath | WriteBuffer[bytes], compression: CompressionOptions=…, protocol: int=…, storage_options: StorageOptions | None=…) -> None
- removed:
field Fixed.encoding: str - removed:
field Fixed.errors: str - removed:
field Fixed.group: Node - removed:
field IndexCol.cname: str - removed:
field IndexCol.name: str - removed:
field Table.data_columns: list - removed:
field Table.index_axes: list[IndexCol] - removed:
field Table.info: dict - removed:
field Table.non_index_axes: list[tuple[int, Any]] - removed:
field Table.values_axes: list[DataCol] - removed:
method HDFStore.iteritems() - removed:
property Table.axes - changed:
constructor DataCol(name: str, values=…, kind=…, typ=…, cname=…, pos=…, tz=…, ordered=…, table=…, meta=…, metadata=…, dtype: DtypeArg | None=…, data=…) -> None → constructor DataCol(name: str, values=…, kind=…, typ=…, cname: str | None=…, pos=…, tz=…, ordered=…, table=…, meta=…, metadata=…, dtype: DtypeArg | None=…, data=…) -> None - changed:
constructor Fixed(parent: HDFStore, group: Node, encoding: str=…, errors: str=…) -> None → constructor Fixed(parent: HDFStore, group: Node, encoding: str | None=…, errors: str=…) -> None - changed:
constructor Table(parent: HDFStore, group: Node, encoding=…, errors: str=…, index_axes=…, non_index_axes=…, values_axes=…, data_columns=…, info=…, nan_rep=…) -> None → constructor Table(parent: HDFStore, group: Node, encoding: str | None=…, errors: str=…, index_axes: list[IndexCol] | None=…, non_index_axes: list[tuple[AxisInt, Any]] | None=…, values_axes: list[DataCol] | None=…, data_columns: list | None=…, info: dict | None=…, nan_rep=…) -> None - changed:
method AppendableMultiFrameTable.write(obj, data_columns=…, **kwargs) → method AppendableMultiFrameTable.write(obj, data_columns=…, **kwargs) -> None - changed:
method AppendableMultiSeriesTable.write(obj, **kwargs) → method AppendableMultiSeriesTable.write(obj, **kwargs) -> None - changed:
method AppendableSeriesTable.write(obj, data_columns=…, **kwargs) → method AppendableSeriesTable.write(obj, data_columns=…, **kwargs) -> None - changed:
method AppendableTable.write(obj, axes=…, append: bool=…, complib=…, complevel=…, fletcher32=…, min_itemsize=…, chunksize=…, expectedrows=…, dropna: bool=…, nan_rep=…, data_columns=…, track_times=…) -> None → method AppendableTable.write(obj, axes=…, append: bool=…, complib=…, complevel=…, fletcher32=…, min_itemsize=…, chunksize: int | None=…, expectedrows=…, dropna: bool=…, nan_rep=…, data_columns=…, track_times: bool=…) -> None - changed:
method Fixed.write(**kwargs) → method Fixed.write(obj, **kwargs) -> None - changed:
method GenericIndexCol.convert(values: np.ndarray, nan_rep, encoding: str, errors: str) -> tuple[Int64Index, Int64Index] → method GenericIndexCol.convert(values: np.ndarray, nan_rep, encoding: str, errors: str) -> tuple[Index, Index] - changed:
method GenericTable.write(**kwargs) → method GenericTable.write(**kwargs) -> None - changed:
method HDFStore.append(key: str, value: DataFrame | Series, format=…, axes=…, index=…, append=…, complib=…, complevel: int | None=…, columns=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, chunksize=…, expectedrows=…, dropna: bool | None=…, data_columns: Literal[True] | list[str] | None=…, encoding=…, errors: str=…) -> None → method HDFStore.append(key: str, value: DataFrame | Series, format=…, axes=…, index: bool | list[str]=…, append: bool=…, complib=…, complevel: int | None=…, columns=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, chunksize: int | None=…, expectedrows=…, dropna: bool | None=…, data_columns: Literal[True] | list[str] | None=…, encoding=…, errors: str=…) -> None - changed:
method HDFStore.append_to_multiple(d: dict, value, selector, data_columns=…, axes=…, dropna=…, **kwargs) -> None → method HDFStore.append_to_multiple(d: dict, value, selector, data_columns=…, axes=…, dropna: bool=…, **kwargs) -> None - changed:
method HDFStore.copy(file, mode=…, propindexes: bool=…, keys=…, complib=…, complevel: int | None=…, fletcher32: bool=…, overwrite=…) -> HDFStore → method HDFStore.copy(file, mode: str=…, propindexes: bool=…, keys=…, complib=…, complevel: int | None=…, fletcher32: bool=…, overwrite: bool=…) -> HDFStore - changed:
method HDFStore.put(key: str, value: DataFrame | Series, format=…, index=…, append=…, complib=…, complevel: int | None=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, data_columns: Literal[True] | list[str] | None=…, encoding=…, errors: str=…, track_times: bool=…, dropna: bool=…) -> None → method HDFStore.put(key: str, value: DataFrame | Series, format=…, index: bool=…, append: bool=…, complib=…, complevel: int | None=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, data_columns: Literal[True] | list[str] | None=…, encoding=…, errors: str=…, track_times: bool=…, dropna: bool=…) -> None - changed:
method HDFStore.select(key: str, where=…, start=…, stop=…, columns=…, iterator=…, chunksize=…, auto_close: bool=…) → method HDFStore.select(key: str, where=…, start=…, stop=…, columns=…, iterator: bool=…, chunksize: int | None=…, auto_close: bool=…) - changed:
method HDFStore.select_as_multiple(keys, where=…, selector=…, columns=…, start=…, stop=…, iterator=…, chunksize=…, auto_close: bool=…) → method HDFStore.select_as_multiple(keys, where=…, selector=…, columns=…, start=…, stop=…, iterator: bool=…, chunksize: int | None=…, auto_close: bool=…) - changed:
method IndexCol.convert(values: np.ndarray, nan_rep, encoding: str, errors: str) -> tuple[np.ndarray, np.ndarray] | tuple[DatetimeIndex, DatetimeIndex] → method IndexCol.convert(values: np.ndarray, nan_rep, encoding: str, errors: str) -> tuple[np.ndarray, np.ndarray] | tuple[Index, Index] - changed:
method WORMTable.write(**kwargs) -> None → method WORMTable.write(obj, **kwargs) -> None - added:
property Table.axes -> itertools.chain[IndexCol]
- changed:
constructor XportReader(filepath_or_buffer: FilePath | ReadBuffer[bytes], index=…, encoding: str | None=…, chunksize=…, compression: CompressionOptions=…) -> None → constructor XportReader(filepath_or_buffer: FilePath | ReadBuffer[bytes], index=…, encoding: str | None=…, chunksize: int | None=…, compression: CompressionOptions=…) -> None - changed:
method XportReader.get_chunk(size=…) -> pd.DataFrame → method XportReader.get_chunk(size: int | None=…) -> pd.DataFrame
- changed:
class ReaderBase → class ReaderBase(ABC) - changed:
function read_sas(filepath_or_buffer: FilePath | ReadBuffer[bytes], format: str | None=…, index: Hashable | None=…, encoding: str | None=…, chunksize: int=…, iterator: bool=…, compression: CompressionOptions=…) -> ReaderBase | (filepath_or_buffer: FilePath | ReadBuffer[bytes], format: str | None=…, index: Hashable | None=…, encoding: str | None=…, chunksize: None=…, iterator: bool=…, compression:… → function read_sas(filepath_or_buffer: FilePath | ReadBuffer[bytes], *, format: str | None=…, index: Hashable | None=…, encoding: str | None=…, chunksize: int=…, iterator: bool=…, compression: CompressionOptions=…) -> ReaderBase | (filepath_or_buffer: FilePath | ReadBuffer[bytes], *, format: str | None=…, index: Hashable | None=…, encoding: str | None=…, chunksize: None=…, iterator: bool=…, compre…
- changed:
function read_spss(path: str | Path, usecols: Sequence[str] | None=…, convert_categoricals: bool=…) -> DataFrame → function read_spss(path: str | Path, usecols: Sequence[str] | None=…, convert_categoricals: bool=…, dtype_backend: DtypeBackend | lib.NoDefault=…) -> DataFrame
- removed:
method PandasSQL.read_sql(*args, **kwargs) - changed:
class PandasSQL(PandasObject) → class PandasSQL(PandasObject, ABC) - changed:
constructor SQLDatabase(engine, schema: str | None=…) -> None → constructor SQLDatabase(con, schema: str | None=…, need_transaction: bool=…) -> None - changed:
constructor SQLTable(name: str, pandas_sql_engine, frame=…, index: bool | str | list[str] | None=…, if_exists: str=…, prefix: str=…, index_label=…, schema=…, keys=…, dtype: DtypeArg | None=…) -> None → constructor SQLTable(name: str, pandas_sql_engine, frame=…, index: bool | str | list[str] | None=…, if_exists: Literal['fail', 'replace', 'append']=…, prefix: str=…, index_label=…, schema=…, keys=…, dtype: DtypeArg | None=…) -> None - changed:
function pandasSQL_builder(con, schema: str | None=…) -> SQLDatabase | SQLiteDatabase → function pandasSQL_builder(con, schema: str | None=…, need_transaction: bool=…) -> PandasSQL - changed:
function read_sql(sql, con, index_col: str | list[str] | None=…, coerce_float=…, params=…, parse_dates=…, columns: list[str]=…, chunksize: None=…) -> DataFrame | (sql, con, index_col: str | list[str] | None=…, coerce_float=…, params=…, parse_dates=…, columns: list[str]=…, chunksize: int=…) -> Iterator[DataFrame] → function read_sql(sql, con, index_col: str | list[str] | None=…, coerce_float=…, params=…, parse_dates=…, columns: list[str]=…, chunksize: None=…, dtype_backend: DtypeBackend | lib.NoDefault=…, dtype: DtypeArg | None=…) -> DataFrame | (sql, con, index_col: str | list[str] | None=…, coerce_float=…, params=…, parse_dates=…, columns: list[str]=…, chunksize: int=…, dtype_backend: DtypeBackend | lib.N… - changed:
function read_sql_query(sql, con, index_col: str | list[str] | None=…, coerce_float=…, params: list[str] | dict[str, str] | None=…, parse_dates: list[str] | dict[str, str] | None=…, chunksize: None=…, dtype: DtypeArg | None=…) -> DataFrame | (sql, con, index_col: str | list[str] | None=…, coerce_float=…, params: list[str] | dict[str, str] | None=…, parse_dates: list[str] | dict[str, str] | None=…… → function read_sql_query(sql, con, index_col: str | list[str] | None=…, coerce_float=…, params: list[Any] | Mapping[str, Any] | None=…, parse_dates: list[str] | dict[str, str] | None=…, chunksize: None=…, dtype: DtypeArg | None=…, dtype_backend: DtypeBackend | lib.NoDefault=…) -> DataFrame | (sql, con, index_col: str | list[str] | None=…, coerce_float=…, params: list[Any] | Mapping[str, Any] | Non… - changed:
function read_sql_table(table_name, con, schema=…, index_col: str | list[str] | None=…, coerce_float=…, parse_dates: list[str] | dict[str, str] | None=…, columns: list[str] | None=…, chunksize: None=…) -> DataFrame | (table_name, con, schema=…, index_col: str | list[str] | None=…, coerce_float=…, parse_dates: list[str] | dict[str, str] | None=…, columns: list[str] | None=…, chunksize: int=…) -> I… → function read_sql_table(table_name: str, con, schema=…, index_col: str | list[str] | None=…, coerce_float=…, parse_dates: list[str] | dict[str, str] | None=…, columns: list[str] | None=…, chunksize: None=…, dtype_backend: DtypeBackend | lib.NoDefault=…) -> DataFrame | (table_name: str, con, schema=…, index_col: str | list[str] | None=…, coerce_float=…, parse_dates: list[str] | dict[str, str] | No… - changed:
function to_sql(frame, name: str, con, schema: str | None=…, if_exists: str=…, index: bool=…, index_label: IndexLabel=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: str | None=…, engine: str=…, **engine_kwargs) -> int | None → function to_sql(frame, name: str, con, schema: str | None=…, if_exists: Literal['fail', 'replace', 'append']=…, index: bool=…, index_label: IndexLabel | None=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…, engine: str=…, **engine_kwargs) -> int | None - changed:
method BaseEngine.insert_records(table: SQLTable, con, frame, name, index=…, schema=…, chunksize=…, method=…, **engine_kwargs) -> int | None → method BaseEngine.insert_records(table: SQLTable, con, frame, name: str, index: bool | str | list[str] | None=…, schema=…, chunksize: int | None=…, method=…, **engine_kwargs) -> int | None - changed:
method PandasSQL.to_sql(frame, name, if_exists: str=…, index: bool=…, index_label=…, schema=…, chunksize=…, dtype: DtypeArg | None=…, method=…) -> int | None → method PandasSQL.to_sql(frame, name: str, if_exists: Literal['fail', 'replace', 'append']=…, index: bool=…, index_label=…, schema=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…, engine: str=…, **engine_kwargs) -> int | None - changed:
method SQLAlchemyEngine.insert_records(table: SQLTable, con, frame, name, index=…, schema=…, chunksize=…, method=…, **engine_kwargs) -> int | None → method SQLAlchemyEngine.insert_records(table: SQLTable, con, frame, name: str, index: bool | str | list[str] | None=…, schema=…, chunksize: int | None=…, method=…, **engine_kwargs) -> int | None - changed:
method SQLDatabase.execute(*args, **kwargs) → method SQLDatabase.execute(sql: str | Select | TextClause, params=…) - changed:
method SQLDatabase.has_table(name: str, schema: str | None=…) → method SQLDatabase.has_table(name: str, schema: str | None=…) -> bool - changed:
method SQLDatabase.prep_table(frame, name, if_exists=…, index=…, index_label=…, schema=…, dtype: DtypeArg | None=…) -> SQLTable → method SQLDatabase.prep_table(frame, name: str, if_exists: Literal['fail', 'replace', 'append']=…, index: bool | str | list[str] | None=…, index_label=…, schema=…, dtype: DtypeArg | None=…) -> SQLTable - changed:
method SQLDatabase.read_query(sql: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, params=…, chunksize: int | None=…, dtype: DtypeArg | None=…) -> DataFrame | Iterator[DataFrame] → method SQLDatabase.read_query(sql: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, params=…, chunksize: int | None=…, dtype: DtypeArg | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - changed:
method SQLDatabase.read_table(table_name: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, columns=…, schema: str | None=…, chunksize: int | None=…) -> DataFrame | Iterator[DataFrame] → method SQLDatabase.read_table(table_name: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, columns=…, schema: str | None=…, chunksize: int | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - changed:
method SQLDatabase.to_sql(frame, name: str, if_exists: str=…, index: bool=…, index_label=…, schema: str | None=…, chunksize=…, dtype: DtypeArg | None=…, method=…, engine=…, **engine_kwargs) -> int | None → method SQLDatabase.to_sql(frame, name: str, if_exists: Literal['fail', 'replace', 'append']=…, index: bool=…, index_label=…, schema: str | None=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…, engine: str=…, **engine_kwargs) -> int | None - changed:
method SQLTable.insert(chunksize: int | None=…, method: str | None=…) -> int | None → method SQLTable.insert(chunksize: int | None=…, method: Literal['multi'] | Callable | None=…) -> int | None - changed:
method SQLTable.read(coerce_float: bool=…, parse_dates=…, columns=…, chunksize=…) -> DataFrame | Iterator[DataFrame] → method SQLTable.read(exit_stack: ExitStack, coerce_float: bool=…, parse_dates=…, columns=…, chunksize: int | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - changed:
method SQLiteDatabase.execute(*args, **kwargs) → method SQLiteDatabase.execute(sql: str | Select | TextClause, params=…) - changed:
method SQLiteDatabase.read_query(sql, index_col=…, coerce_float: bool=…, params=…, parse_dates=…, chunksize: int | None=…, dtype: DtypeArg | None=…) -> DataFrame | Iterator[DataFrame] → method SQLiteDatabase.read_query(sql, index_col=…, coerce_float: bool=…, parse_dates=…, params=…, chunksize: int | None=…, dtype: DtypeArg | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - changed:
method SQLiteDatabase.to_sql(frame, name, if_exists: str=…, index: bool=…, index_label=…, schema=…, chunksize=…, dtype: DtypeArg | None=…, method=…, **kwargs) -> int | None → method SQLiteDatabase.to_sql(frame, name: str, if_exists: str=…, index: bool=…, index_label=…, schema=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…, engine: str=…, **engine_kwargs) -> int | None - added:
class ADBCDatabase(PandasSQL) - added:
constructor ADBCDatabase(con) -> None - added:
field ADBCDatabase.read_sql - added:
method ADBCDatabase.execute(sql: str | Select | TextClause, params=…) - added:
method ADBCDatabase.has_table(name: str, schema: str | None=…) -> bool - added:
method ADBCDatabase.read_query(sql: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, params=…, chunksize: int | None=…, dtype: DtypeArg | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - added:
method ADBCDatabase.read_table(table_name: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, columns=…, schema: str | None=…, chunksize: int | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - added:
method ADBCDatabase.run_transaction() - added:
method ADBCDatabase.to_sql(frame, name: str, if_exists: Literal['fail', 'replace', 'append']=…, index: bool=…, index_label=…, schema: str | None=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…, engine: str=…, **engine_kwargs) -> int | None - added:
method PandasSQL.execute(sql: str | Select | TextClause, params=…) - added:
method PandasSQL.has_table(name: str, schema: str | None=…) -> bool - added:
method PandasSQL.read_query(sql: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, params=…, chunksize: int | None=…, dtype: DtypeArg | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame] - added:
method PandasSQL.read_table(table_name: str, index_col: str | list[str] | None=…, coerce_float: bool=…, parse_dates=…, columns=…, schema: str | None=…, chunksize: int | None=…, dtype_backend: DtypeBackend | Literal['numpy']=…) -> DataFrame | Iterator[DataFrame]
- removed:
field StataMissingValue.increment - removed:
field StataMissingValue.increment: int - changed:
constructor StataReader(path_or_buf: FilePath | ReadBuffer[bytes], convert_dates: bool=…, convert_categoricals: bool=…, index_col: str | None=…, convert_missing: bool=…, preserve_dtypes: bool=…, columns: Sequence[str] | None=…, order_categoricals: bool=…, chunksize: int | None=…, compression: CompressionOptions=…, storage_options: StorageOptions=…) -> None → constructor StataReader(path_or_buf: FilePath | ReadBuffer[bytes], convert_dates: bool=…, convert_categoricals: bool=…, index_col: str | None=…, convert_missing: bool=…, preserve_dtypes: bool=…, columns: Sequence[str] | None=…, order_categoricals: bool=…, chunksize: int | None=…, compression: CompressionOptions=…, storage_options: StorageOptions | None=…) -> None - changed:
constructor StataWriter(fname: FilePath | WriteBuffer[bytes], data: DataFrame, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime.datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, compression: CompressionOptions=…, storage_options: StorageOptions=…, *, value_labels: dict[Hashable, dict[float, st… → constructor StataWriter(fname: FilePath | WriteBuffer[bytes], data: DataFrame, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, compression: CompressionOptions=…, storage_options: StorageOptions | None=…, *, value_labels: dict[Hashable, dict[float, str]… - changed:
constructor StataWriter117(fname: FilePath | WriteBuffer[bytes], data: DataFrame, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime.datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, convert_strl: Sequence[Hashable] | None=…, compression: CompressionOptions=…, storage_options: StorageOptions=…,… → constructor StataWriter117(fname: FilePath | WriteBuffer[bytes], data: DataFrame, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, convert_strl: Sequence[Hashable] | None=…, compression: CompressionOptions=…, storage_options: StorageOptions | None=…, *,… - changed:
constructor StataWriterUTF8(fname: FilePath | WriteBuffer[bytes], data: DataFrame, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime.datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, convert_strl: Sequence[Hashable] | None=…, version: int | None=…, compression: CompressionOptions=…, storage_opt… → constructor StataWriterUTF8(fname: FilePath | WriteBuffer[bytes], data: DataFrame, convert_dates: dict[Hashable, str] | None=…, write_index: bool=…, byteorder: str | None=…, time_stamp: datetime | None=…, data_label: str | None=…, variable_labels: dict[Hashable, str] | None=…, convert_strl: Sequence[Hashable] | None=…, version: int | None=…, compression: CompressionOptions=…, storage_options: Sto… - changed:
function read_stata(filepath_or_buffer: FilePath | ReadBuffer[bytes], convert_dates: bool=…, convert_categoricals: bool=…, index_col: str | None=…, convert_missing: bool=…, preserve_dtypes: bool=…, columns: Sequence[str] | None=…, order_categoricals: bool=…, chunksize: int | None=…, iterator: bool=…, compression: CompressionOptions=…, storage_options: StorageOptions=…) -> DataFrame | StataReader → function read_stata(filepath_or_buffer: FilePath | ReadBuffer[bytes], *, convert_dates: bool=…, convert_categoricals: bool=…, index_col: str | None=…, convert_missing: bool=…, preserve_dtypes: bool=…, columns: Sequence[str] | None=…, order_categoricals: bool=…, chunksize: int | None=…, iterator: bool=…, compression: CompressionOptions=…, storage_options: StorageOptions | None=…) -> DataFrame | St… - added:
field StataMissingValue.increment_32: int - added:
field StataMissingValue.increment_64 - added:
property StataReader.time_stamp -> str
- changed:
function read_xml(path_or_buffer: FilePath | ReadBuffer[bytes] | ReadBuffer[str], xpath: str=…, namespaces: dict[str, str] | None=…, elems_only: bool=…, attrs_only: bool=…, names: Sequence[str] | None=…, dtype: DtypeArg | None=…, converters: ConvertersArg | None=…, parse_dates: ParseDatesArg | None=…, encoding: str | None=…, parser: XMLParsers=…, stylesheet: FilePath | ReadBuffer[bytes] | ReadBuf… → function read_xml(path_or_buffer: FilePath | ReadBuffer[bytes] | ReadBuffer[str], *, xpath: str=…, namespaces: dict[str, str] | None=…, elems_only: bool=…, attrs_only: bool=…, names: Sequence[str] | None=…, dtype: DtypeArg | None=…, converters: ConvertersArg | None=…, parse_dates: ParseDatesArg | None=…, encoding: str | None=…, parser: XMLParsers=…, stylesheet: FilePath | ReadBuffer[bytes] | Read…
- added:
export guess_datetime_format
- removed:
function get_offset(name: str) -> BaseOffset - changed:
function infer_freq(index, warn: bool=…) -> str | None → function infer_freq(index: DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixin) -> str | None
- changed:
function HolidayCalendarFactory(name, base, other, base_class=…) → function HolidayCalendarFactory(name: str, base, other, base_class=…) - changed:
function get_calendar(name) → function get_calendar(name: str) - changed:
function register(cls) → function register(cls) -> None
- removed:
export Appender - removed:
export Substitution - removed:
export cache_readonly - removed:
export hash_array - removed:
export hash_pandas_object - added:
function capitalize_first_letter(s)