Upgrading pandas 2 to 3
Breaking2.3.3 → 3.1.0Breaking2Platform2New2Changed3Fixed1
BreakingUpgrade verdict
2 breaking changes and 2 platform requirement changes.
In plain terms
- Old features that pandas had already marked as obsolete are now gone. Move to pandas 2.3 first and clear any warnings before switching to 3.0.
- Dates and times are now stored at a different default precision, which can change the dtype you see.
- pandas 3.0.6 can now be used with Python 3.15.
- You need Python 3.11 or newer to install this version.
Must act 4 items need code or config changes
Python requirement changed in 3.0.0rc0: >=3.9 → >=3.11.
Drops pytz, tzdata.
Installs 4 packages in all (was 5).
What you must change
Breaking2
Removes functionality deprecated in previous releases; upgrade to pandas 2.3 and fix warnings before upgrading to 3.0.
Changes the default resolution inference for datetime-like data.
Platform2
Adds support for Python 3.15, the first pandas release to do so.
Requires Python 3.11 or higher.
API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- removed:
export read_gbq - removed:
export value_counts - added:
export NamedFunc - added:
export __git_version__ - added:
export __version__ - added:
export col - added:
export read_iceberg
- added:
export executors - added:
export internals
- added:
export BaseExecutionEngine
- added:
function create_dataframe_from_blocks(blocks: list[tuple[ArrayLike, np.ndarray]], index: Index, columns: Index) -> DataFrame
- removed:
export DatetimeIndexResamplerGroupby - removed:
export ExpandingGroupby - removed:
export ExponentialMovingWindowGroupby - removed:
export PeriodIndexResamplerGroupby - removed:
export RollingGroupby - removed:
export TimedeltaIndexResamplerGroupby - added:
export DatetimeIndexResamplerGroupBy - added:
export ExpandingGroupBy - added:
export ExponentialMovingWindowGroupBy - added:
export Expression - added:
export FrozenList - added:
export NoDefault - added:
export PeriodIndexResamplerGroupBy - added:
export RollingGroupBy - added:
export SASReader - added:
export TimedeltaIndexResamplerGroupBy
- added:
export AggFuncType - added:
export AlignJoin - added:
export AnyAll - added:
export AnyArrayLike - added:
export ArrayLike - added:
export AstypeArg - added:
export Axes - added:
export Axis - added:
export CSVEngine - added:
export ColspaceArgType - added:
export CompressionOptions - added:
export CorrelationMethod - added:
export DropKeep - added:
export Dtype - added:
export DtypeArg - added:
export DtypeBackend - added:
export DtypeObj - added:
export ExcelWriterIfSheetExists - added:
export ExcelWriterMergeCells - added:
export FilePath - added:
export FillnaOptions - added:
export FloatFormatType - added:
export FormattersType - added:
export FromDictOrient - added:
export HTMLFlavors - added:
export IgnoreRaise - added:
export IndexLabel - added:
export InterpolateOptions - added:
export IntervalClosedType - added:
export IntervalLeftRight - added:
export JSONEngine - added:
export JSONSerializable - added:
export JoinHow - added:
export JoinValidate - added:
export ListLike - added:
export MergeHow - added:
export MergeValidate - added:
export NaPosition - added:
export NsmallestNlargestKeep - added:
export OpenFileErrors - added:
export Ordered - added:
export ParquetCompressionOptions - added:
export QuantileInterpolation - added:
export ReadBuffer - added:
export ReadCsvBuffer - added:
export ReadPickleBuffer - added:
export ReindexMethod - added:
export Scalar - added:
export ScalarIndexer - added:
export SequenceIndexer - added:
export SequenceNotStr - added:
export SliceType - added:
export SortKind - added:
export StorageOptions - added:
export Suffixes - added:
export TakeIndexer - added:
export TimeAmbiguous - added:
export TimeGrouperOrigin - added:
export TimeNonexistent - added:
export TimeUnit - added:
export TimedeltaConvertibleTypes - added:
export TimestampConvertibleTypes - added:
export ToStataByteorder - added:
export ToTimestampHow - added:
export UpdateJoin - added:
export UsecolsArgType - added:
export WindowingRankType - added:
export WriteBuffer - added:
export WriteExcelBuffer - added:
export XMLParsers
- removed:
export PY310 - removed:
export PY311 - removed:
export WARNING_CHECK_DISABLED - removed:
export pa_version_under10p1 - removed:
export pa_version_under11p0 - removed:
export pa_version_under13p0 - removed:
export pa_version_under14p0 - removed:
export pa_version_under14p1 - removed:
export pa_version_under16p0 - added:
export CHAINED_WARNING_DISABLED - added:
export PY313 - added:
export PY315 - added:
export PYARROW_INSTALLED - added:
export PYARROW_MIN_VERSION - added:
export WASM - added:
export pa_version_under22p0 - added:
export pa_version_under23p0 - added:
export pa_version_under25p0 - added:
export pa_version_under26p0
- removed:
class BZ2File(bz2.BZ2File) - removed:
class LZMAFile(lzma.LZMAFile) - removed:
function flatten_buffer(b: bytes | bytearray | memoryview | PickleBuffer) -> bytes | bytearray | memoryview - removed:
method BZ2File.write(b) -> int - removed:
method LZMAFile.write(b) -> int - removed:
variable has_bz2 - removed:
variable has_lzma
- removed:
export np
- removed:
function validate_argmin_with_skipna(skipna: bool | ndarray | None, args, kwargs) -> bool - removed:
function validate_resampler_func(method: str, args, kwargs) -> None - removed:
function validate_take_with_convert(convert: ndarray | bool | None, args, kwargs) -> bool - removed:
variable RESAMPLER_NUMPY_OPS - removed:
variable RESHAPE_DEFAULTS: dict[str, str] - removed:
variable SORT_DEFAULTS: dict[str, int | str | None] - removed:
variable validate_reshape - removed:
variable validate_sort - changed:
constructor CompatValidator(defaults, fname=…, method: str | None=…, max_fname_arg_count=…) -> None → constructor CompatValidator(defaults: dict[str, Any], fname: str | None=…, method: str | None=…, max_fname_arg_count: int | None=…) -> None - changed:
function process_skipna(skipna: bool | ndarray | None, args) -> tuple[bool, Any] → function process_skipna(skipna: bool | ndarray | None, args: tuple[Any, ...]) -> tuple[bool, tuple[Any, ...]] - changed:
function validate_argmax_with_skipna(skipna: bool | ndarray | None, args, kwargs) -> bool → function validate_argmax_with_skipna(skipna: bool | ndarray | None, args: tuple[Any, ...], kwargs: dict[str, Any]) -> bool - changed:
function validate_argsort_with_ascending(ascending: bool | int | None, args, kwargs) -> bool → function validate_argsort_with_ascending(ascending: bool | int | None, args: tuple[Any, ...], kwargs: dict[str, Any]) -> bool - changed:
function validate_clip_with_axis(axis: ndarray, args, kwargs) -> None | (axis: AxisNoneT, args, kwargs) -> AxisNoneT → function validate_clip_with_axis(axis: ndarray, args: tuple[Any, ...], kwargs: dict[str, Any]) -> None | (axis: AxisNoneT, args: tuple[Any, ...], kwargs: dict[str, Any]) -> AxisNoneT - changed:
function validate_cum_func_with_skipna(skipna: bool, args, kwargs, name) -> bool → function validate_cum_func_with_skipna(skipna: bool, args: tuple[Any, ...], kwargs: dict[str, Any], name: str) -> bool - changed:
function validate_func(fname, args, kwargs) -> None → function validate_func(fname: str, args: tuple[Any, ...], kwargs: dict[str, Any]) -> None - changed:
function validate_groupby_func(name: str, args, kwargs, allowed=…) -> None → function validate_groupby_func(name: str, args: tuple[Any, ...], kwargs: dict[str, Any], allowed: list[str] | None=…) -> None
- removed:
function load(fh, encoding: str | None=…, is_verbose: bool=…) - removed:
function load_newobj(self) -> None - removed:
function load_newobj_ex(self) -> None - removed:
function load_reduce(self) -> None - changed:
class Unpickler(pkl._Unpickler) → class Unpickler(pickle._Unpickler) - changed:
function loads(bytes_object: bytes, *, fix_imports: bool=…, encoding: str=…, errors: str=…) → function loads(bytes_object: bytes, *, fix_imports: bool=…, encoding: str=…, errors: str=…) -> Any - changed:
function patch_pickle() -> Generator[None, None, None] → function patch_pickle() -> Generator[None] - changed:
method Unpickler.find_class(module, name) → method Unpickler.find_class(module: str, name: str) -> Any - added:
field Unpickler.dispatch - added:
method Unpickler.load_newobj() -> None - added:
method Unpickler.load_reduce() -> None
- removed:
variable pa_version_under10p1 - removed:
variable pa_version_under11p0 - removed:
variable pa_version_under12p0 - removed:
variable pa_version_under13p0 - removed:
variable pa_version_under14p0 - removed:
variable pa_version_under14p1 - removed:
variable pa_version_under15p0 - removed:
variable pa_version_under16p0 - added:
variable PYARROW_INSTALLED - added:
variable PYARROW_MIN_VERSION - added:
variable pa_version_under22p0 - added:
variable pa_version_under23p0 - added:
variable pa_version_under25p0 - added:
variable pa_version_under26p0
- removed:
function arrow_string_storage() - removed:
function axis_1(request) - removed:
function configure_tests() -> None - removed:
function spmatrix(request) - removed:
function using_array_manager() -> bool - removed:
function using_copy_on_write() -> bool - removed:
function warn_copy_on_write() -> bool - removed:
variable axis_frame - removed:
variable hypothesis_health_checks - removed:
variable index_fixture2 - removed:
variable index_or_series2 - removed:
variable tz_aware_fixture2 - removed:
variable warsaws - removed:
variable zoneinfo - changed:
function datetime_series() -> Series → function datetime_series() -> pd.Series - changed:
function dict_subclass() -> type[dict] → function dict_subclass() -> type[dict[Any, Any]] - changed:
function fixed_now_ts() -> Timestamp → function fixed_now_ts() -> pd.Timestamp - changed:
function float_frame() -> DataFrame → function float_frame() -> pd.DataFrame - changed:
function int_frame() -> DataFrame → function int_frame() -> pd.DataFrame - changed:
function multiindex_dataframe_random_data(lexsorted_two_level_string_multiindex) -> DataFrame → function multiindex_dataframe_random_data(lexsorted_two_level_string_multiindex) -> pd.DataFrame - changed:
function non_dict_mapping_subclass() -> type[abc.Mapping] → function non_dict_mapping_subclass() -> type[abc.Mapping[Any, Any]] - changed:
function object_series() -> Series → function object_series() -> pd.Series - changed:
function rand_series_with_duplicate_datetimeindex() -> Series → function rand_series_with_duplicate_datetimeindex() -> pd.Series - changed:
function series_with_simple_index(index) -> Series → function series_with_simple_index(index) -> pd.Series - changed:
function string_series() -> Series → function string_series() -> pd.Series - added:
function as_index(request) - added:
function ascending(request) - added:
function cache(request) - added:
function dropna(request) - added:
function index_flat_sortable(request) - added:
function index_or_series_obj_orderable(request) - added:
function index_sortable(request) - added:
function index_with_missing_sortable(request) - added:
function monkeysession() - added:
function mpl_cleanup() - added:
function mpl_cleanup_context() - added:
function na_action(request) - added:
function nogil(request) - added:
function parallel(request) - added:
function performance_warning(request) -> Iterator[bool | type[Warning]] - added:
function pytest_configure(config) -> None - added:
function pytest_sessionstart(session) - added:
function rank_method(request) - added:
function sort(request) - added:
function temp_file(tmp_path) - added:
function using_nan_is_na(request) - added:
function using_python_scalars() -> bool - added:
variable PANDAS_MARKERS - added:
variable any_string_dtype2 - added:
variable index_flat2_sortable - added:
variable pytz
- removed:
class CachedAccessor - removed:
constructor CachedAccessor(name: str, accessor) -> None - changed:
function register_dataframe_accessor(name: str) → function register_dataframe_accessor(name: str) -> Callable[[TypeT], TypeT] - changed:
function register_index_accessor(name: str) → function register_index_accessor(name: str) -> Callable[[TypeT], TypeT] - changed:
function register_series_accessor(name: str) → function register_series_accessor(name: str) -> Callable[[TypeT], TypeT] - added:
class Accessor - added:
constructor Accessor(name: str, accessor) -> None
- removed:
function value_counts(values, sort: bool=…, ascending: bool=…, normalize: bool=…, bins=…, dropna: bool=…) -> Series - changed:
function diff(arr, n: int, axis: AxisInt=…) → function diff(arr, n: int | float | np.integer | np.floating, axis: AxisInt=…) - changed:
function map_array(arr: ArrayLike, mapper, na_action: Literal['ignore'] | None=…, convert: bool=…) -> np.ndarray | ExtensionArray | Index → function map_array(arr: ArrayLike, mapper, na_action: Literal['ignore'] | None=…) -> np.ndarray | ExtensionArray | Index - changed:
function mode(values: ArrayLike, dropna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> ArrayLike → function mode(values: ArrayLike, dropna: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> tuple[np.ndarray, npt.NDArray[np.bool_]] | ExtensionArray - changed:
function rank(values: ArrayLike, axis: AxisInt=…, method: str=…, na_option: str=…, ascending: bool=…, pct: bool=…) -> npt.NDArray[np.float64] → function rank(values: ArrayLike, axis: AxisInt=…, method: RankMethod=…, na_option: RankNaOption=…, ascending: bool=…, pct: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> npt.NDArray[np.float64] - changed:
function unique(values) → function unique(values: T) -> T | (values: np.ndarray | Series) -> np.ndarray - added:
function factorize_monotonic_codes(arr: np.ndarray, ascending: bool, sort: bool) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]] - added:
function is_monotonic(values: ArrayLike) -> tuple[bool, bool, bool] - added:
function occurrence_rank(codes: npt.NDArray[np.intp]) -> npt.NDArray[np.intp] - added:
variable T
- removed:
export value_counts - added:
variable NamedFunc
- removed:
function warn_alias_replacement(obj: AggObjType, func: Callable, alias: str) -> None - removed:
property FrameApply.series_generator -> Generator[Series, None, None] - removed:
property FrameColumnApply.series_generator -> Generator[Series, None, None] - removed:
property FrameRowApply.series_generator -> Generator[Series, None, None] - changed:
constructor SeriesApply(obj: Series, func: AggFuncType, *, convert_dtype: bool | lib.NoDefault=…, by_row: Literal[False, 'compat', '_compat']=…, args, kwargs) -> None → constructor SeriesApply(obj: Series, func: AggFuncType, *, by_row: Literal[False, 'compat', '_compat']=…, args, kwargs) -> None - changed:
function reconstruct_func(func: AggFuncType | None, **kwargs) -> tuple[bool, AggFuncType, tuple[str, ...] | None, npt.NDArray[np.intp] | None] → function reconstruct_func(func: AggFuncType | None, allow_skip_normalization: bool=…, /, **kwargs) -> tuple[bool, AggFuncType, tuple[str, ...] | None, npt.NDArray[np.intp] | None] - changed:
method FrameApply.validate_values_for_numba() → method FrameApply.validate_values_for_numba() -> None - changed:
static method FrameApply.generate_numba_apply_func(func, nogil=…, nopython=…, parallel=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] → static method FrameApply.generate_numba_apply_func(func, nogil: bool=…, parallel: bool=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] - changed:
static method FrameColumnApply.generate_numba_apply_func(func, nogil=…, nopython=…, parallel=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] → static method FrameColumnApply.generate_numba_apply_func(func, nogil: bool=…, parallel: bool=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] - changed:
static method FrameRowApply.generate_numba_apply_func(func, nogil=…, nopython=…, parallel=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] → static method FrameRowApply.generate_numba_apply_func(func, nogil: bool=…, parallel: bool=…) -> Callable[[npt.NDArray, Index, Index], dict[int, Any]] - changed:
variable ResType → variable ResType: TypeAlias - added:
class BaseExecutionEngine(abc.ABC) - added:
property FrameApply.series_generator -> Generator[Series] - added:
property FrameColumnApply.series_generator -> Generator[Series] - added:
property FrameRowApply.series_generator -> Generator[Series] - added:
static method BaseExecutionEngine.apply(data: Series | DataFrame | np.ndarray, func: AggFuncType, args: tuple, kwargs: dict[str, Any], decorator: Callable, axis: Axis) - added:
static method BaseExecutionEngine.map(data: Series | DataFrame | np.ndarray, func: AggFuncType, args: tuple, kwargs: dict[str, Any], decorator: Callable | None, skip_na: bool)
- changed:
function cummax(values: np.ndarray, *, skipna: bool=…) → function cummax(values: np.ndarray, *, skipna: bool=…) -> np.ndarray - changed:
function cummin(values: np.ndarray, *, skipna: bool=…) → function cummin(values: np.ndarray, *, skipna: bool=…) -> np.ndarray
- changed:
function cummax(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) → function cummax(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) -> tuple[np.ndarray, npt.NDArray[np.bool_]] - changed:
function cummin(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) → function cummin(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) -> tuple[np.ndarray, npt.NDArray[np.bool_]] - changed:
function cumprod(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) → function cumprod(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) -> tuple[np.ndarray, npt.NDArray[np.bool_]] - changed:
function cumsum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) → function cumsum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…) -> tuple[np.ndarray, npt.NDArray[np.bool_]]
- changed:
function sum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…) → function sum(values: np.ndarray, mask: npt.NDArray[np.bool_], *, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…, initial: object | lib.NoDefault=…)
- changed:
function setitem_datetimelike_compat(values: np.ndarray, num_set: int, other) → function setitem_datetimelike_compat(values: np.ndarray, num_set: int, other: Any) -> Any
- changed:
function quantile_with_mask(values: np.ndarray, mask: npt.NDArray[np.bool_], fill_value, qs: npt.NDArray[np.float64], interpolation: str) -> np.ndarray → function quantile_with_mask(values: np.ndarray, mask: npt.NDArray[np.bool_], fill_value: Scalar, qs: npt.NDArray[np.float64], interpolation: str) -> np.ndarray
- changed:
function compare_or_regex_search(a: ArrayLike, b: Scalar | Pattern, regex: bool, mask: npt.NDArray[np.bool_]) -> ArrayLike → function compare_or_regex_search(a: ArrayLike, b: Scalar | Pattern[str], regex: bool, mask: npt.NDArray[np.bool_]) -> ArrayLike - changed:
function replace_regex(values: ArrayLike, rx: re.Pattern, value, mask: npt.NDArray[np.bool_] | None) -> None → function replace_regex(values: ArrayLike, rx: re.Pattern[str], value, mask: npt.NDArray[np.bool_] | None) -> None
- removed:
function take_1d(arr: ArrayLike, indexer: npt.NDArray[np.intp], fill_value=…, allow_fill: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> ArrayLike
- changed:
function shift(values: np.ndarray, periods: int, axis: AxisInt, fill_value: Scalar) -> np.ndarray → function shift(values: np.ndarray, periods: int, fill_value: Scalar) -> np.ndarray
- removed:
function get_unit_from_pa_dtype(pa_dtype) - removed:
method ArrowExtensionArray.map(mapper, na_action=…) - changed:
class ArrowExtensionArray(OpsMixin, ExtensionArraySupportsAnyAll, ArrowStringArrayMixin, BaseStringArrayMethods) → class ArrowExtensionArray(OpsMixin, ExtensionArrayNaResult, ArrowStringArrayMixin) - changed:
method ArrowExtensionArray.all(*, skipna: bool=…, **kwargs) → method ArrowExtensionArray.all(*, skipna: Literal[True]=…, **kwargs) -> bool | (*, skipna: bool, **kwargs) -> bool | NAType - changed:
method ArrowExtensionArray.any(*, skipna: bool=…, **kwargs) → method ArrowExtensionArray.any(*, skipna: Literal[True]=…, **kwargs) -> bool | (*, skipna: bool, **kwargs) -> bool | NAType - changed:
method ArrowExtensionArray.fillna(value: object | ArrayLike | None=…, method: FillnaOptions | None=…, limit: int | None=…, copy: bool=…) -> Self → method ArrowExtensionArray.fillna(value: object | ArrayLike, limit: int | None=…, copy: bool=…) -> Self - added:
function floor_div_int64(arr: pa.Array | pa.ChunkedArray, divisor: int) -> pa.Array | pa.ChunkedArray - added:
function mod_int(arr: pa.Array | pa.ChunkedArray, modulo: int) -> pa.Array | pa.ChunkedArray - added:
method ArrowExtensionArray.count() -> int - added:
method ArrowExtensionArray.kurt(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.max(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.mean(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.median(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.min(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.prod(*, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.sem(*, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…, **kwargs) - added:
method ArrowExtensionArray.skew(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.sort(*, ascending: bool=…, kind: SortKind=…, na_position: str=…) -> None - added:
method ArrowExtensionArray.std(*, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…, **kwargs) - added:
method ArrowExtensionArray.sum(*, skipna: bool=…, min_count: int=…, axis: AxisInt | None=…, **kwargs) - added:
method ArrowExtensionArray.var(*, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…, **kwargs) - added:
method ArrowExtensionArray.view(dtype: None=…) -> Self | (dtype: Dtype | None=…) -> ArrayLike
- removed:
function patch_pyarrow()
- removed:
class ExtensionArraySupportsAnyAll(ExtensionArray) - removed:
method ExtensionArraySupportsAnyAll.all(*, skipna: bool=…) -> bool - removed:
method ExtensionArraySupportsAnyAll.any(*, skipna: bool=…) -> bool - removed:
property ExtensionArray.T -> ExtensionArray - changed:
method ExtensionArray.delete(loc: PositionalIndexer) -> Self → method ExtensionArray.delete(loc: ScalarIndexer | slice | list[int] | np.ndarray) -> Self - changed:
method ExtensionArray.fillna(value: object | ArrayLike | None=…, method: FillnaOptions | None=…, limit: int | None=…, copy: bool=…) -> Self → method ExtensionArray.fillna(value: object | ArrayLike, limit: int | None=…, copy: bool=…) -> Self - changed:
method ExtensionArray.isna() -> np.ndarray | ExtensionArraySupportsAnyAll → method ExtensionArray.isna() -> np.ndarray | ExtensionArrayNaResult - changed:
method ExtensionArray.map(mapper, na_action=…) → method ExtensionArray.map(mapper, na_action: Literal['ignore'] | None=…) - changed:
method ExtensionArray.ravel(order: Literal['C', 'F', 'A', 'K'] | None=…) -> ExtensionArray → method ExtensionArray.ravel(order: Literal['C', 'F', 'A', 'K'] | None=…) -> Self - changed:
method ExtensionArray.tolist() -> list → method ExtensionArray.tolist() -> list[Any] - changed:
method ExtensionArray.transpose(*axes: int) -> ExtensionArray → method ExtensionArray.transpose(*axes: int) -> Self - changed:
method ExtensionArray.view(dtype: Dtype | None=…) -> ArrayLike → method ExtensionArray.view(dtype: None=…) -> Self | (dtype: Dtype | None=…) -> ArrayLike - added:
class ExtensionArrayNaResult(ExtensionArray) - added:
method ExtensionArray.count() - added:
method ExtensionArray.item(index: int | None=…) - added:
method ExtensionArray.round(decimals: int=…) -> Self - added:
method ExtensionArray.sort(*, ascending: bool=…, kind: SortKind=…, na_position: str=…) -> None - added:
method ExtensionArray.value_counts(dropna: bool=…) -> Series - added:
method ExtensionArrayNaResult.all(*, skipna: Literal[True]=…) -> bool | (*, skipna: bool) -> bool | NAType - added:
method ExtensionArrayNaResult.any(*, skipna: Literal[True]=…) -> bool | (*, skipna: bool) -> bool | NAType - added:
method ExtensionArrayNaResult.sum(*, axis: AxisInt | None=…, skipna: bool=…, min_count: int=…, **kwargs) - added:
property ExtensionArray.T -> Self
- changed:
static method BooleanDtype.construct_array_type() -> type_t[BooleanArray] → method BooleanDtype.construct_array_type() -> type_t[BooleanArray]
- removed:
method Categorical.to_list() - changed:
constructor Categorical(values, categories=…, ordered=…, dtype: Dtype | None=…, fastpath: bool | lib.NoDefault=…, copy: bool=…) -> None → constructor Categorical(values, categories=…, ordered=…, dtype: Dtype | None=…, copy: bool=…) -> None - changed:
function recode_for_categories(codes: np.ndarray, old_categories, new_categories, copy: bool=…) -> np.ndarray → function recode_for_categories(codes: np.ndarray, old_categories, new_categories, *, copy: bool=…, warn: bool=…) -> np.ndarray - changed:
method Categorical.argsort(*, ascending: bool=…, kind: SortKind=…, **kwargs) → method Categorical.argsort(*, ascending: bool=…, kind: SortKind=…, **kwargs) -> npt.NDArray[np.intp] - changed:
method Categorical.map(mapper, na_action: Literal['ignore'] | None | lib.NoDefault=…) → method Categorical.map(mapper, na_action: Literal['ignore'] | None=…) - changed:
method Categorical.set_categories(new_categories, ordered=…, rename: bool=…) → method Categorical.set_categories(new_categories, ordered=…, rename: bool=…) -> Self
- removed:
constructor TimelikeOps(values, dtype=…, freq=…, copy: bool=…) -> None - removed:
field DatetimeLikeArrayMixin.freq: BaseOffset | None - removed:
method TimelikeOps.copy(order: str=…) -> Self - removed:
property DatetimeLikeArrayMixin.freqstr -> str | None - removed:
property DatetimeLikeArrayMixin.inferred_freq -> str | None - removed:
property DatetimeLikeArrayMixin.resolution -> str - removed:
property TimelikeOps.freq - changed:
function validate_periods(periods: None) -> None | (periods: int | float) -> int → function validate_periods(periods: None) -> None | (periods: int) -> int - changed:
method DatetimeLikeArrayMixin.map(mapper, na_action=…) → method DatetimeLikeArrayMixin.map(mapper, na_action: Literal['ignore'] | None=…) - changed:
method TimelikeOps.as_unit(unit: str, round_ok: bool=…) -> Self → method TimelikeOps.as_unit(unit: TimeUnit, round_ok: bool=…) -> Self - changed:
method TimelikeOps.unit() -> str → method TimelikeOps.unit() -> TimeUnit - changed:
variable DTScalarOrNaT → variable DTScalarOrNaT: TypeAlias - added:
method DatetimeLikeArrayMixin.fillna(value, limit: int | None=…, copy: bool=…) -> Self - added:
property DatetimeLikeArrayMixin.inferred_freq -> str | BaseOffset | None
- removed:
field DatetimeArray.dayofweek - removed:
field DatetimeArray.dayofyear - removed:
field DatetimeArray.daysinmonth - removed:
field DatetimeArray.weekday - changed:
function objects_to_datetime64(data: np.ndarray, dayfirst, yearfirst, utc: bool=…, errors: DateTimeErrorChoices=…, allow_object: bool=…, out_unit: str=…) → function objects_to_datetime64(data: np.ndarray, dayfirst, yearfirst, utc: bool=…, errors: DateTimeErrorChoices=…, out_unit: str | None=…) -> tuple[np.ndarray, tzinfo | None] - changed:
function tz_to_dtype(tz: tzinfo, unit: str=…) -> DatetimeTZDtype | (tz: None, unit: str=…) -> np.dtype[np.datetime64] → function tz_to_dtype(tz: tzinfo, unit: TimeUnit=…) -> DatetimeTZDtype | (tz: None, unit: TimeUnit=…) -> np.dtype[np.datetime64] - changed:
method DatetimeArray.std(axis=…, dtype=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) → method DatetimeArray.std(axis=…, dtype=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) -> Timedelta - added:
property DatetimeArray.dayofweek - added:
property DatetimeArray.dayofyear - added:
property DatetimeArray.daysinmonth - added:
property DatetimeArray.weekday
- changed:
static method FloatingDtype.construct_array_type() -> type[FloatingArray] → method FloatingDtype.construct_array_type() -> type[FloatingArray]
- changed:
static method IntegerDtype.construct_array_type() -> type[IntegerArray] → method IntegerDtype.construct_array_type() -> type[IntegerArray]
- removed:
method IntervalArray.value_counts(dropna: bool=…) -> Series - changed:
method IntervalArray.fillna(value=…, method=…, limit: int | None=…, copy: bool=…) -> Self → method IntervalArray.fillna(value, limit: int | None=…, copy: bool=…) -> Self - changed:
method IntervalArray.insert(loc: int, item: Interval) -> Self → method IntervalArray.insert(loc: int, item: Interval[Any]) -> Self - changed:
variable IntervalOrNA → variable IntervalOrNA: TypeAlias - changed:
variable IntervalSide → variable IntervalSide: TypeAlias
- removed:
method BaseMaskedArray.map(mapper, na_action=…) - changed:
method BaseMaskedArray.all(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) → method BaseMaskedArray.all(*, skipna: Literal[True]=…, axis: AxisInt | None=…, **kwargs) -> np.bool_ | (*, skipna: bool, axis: AxisInt | None=…, **kwargs) -> np.bool_ | NAType - changed:
method BaseMaskedArray.any(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) → method BaseMaskedArray.any(*, skipna: Literal[True]=…, axis: AxisInt | None=…, **kwargs) -> np.bool_ | (*, skipna: bool, axis: AxisInt | None=…, **kwargs) -> np.bool_ | NAType - changed:
method BaseMaskedArray.fillna(value=…, method=…, limit: int | None=…, copy: bool=…) -> Self → method BaseMaskedArray.fillna(value, limit: int | None=…, copy: bool=…) -> Self - changed:
method BaseMaskedArray.tolist() → method BaseMaskedArray.tolist() -> list[Any] - added:
method BaseMaskedArray.count() -> np.int64 - added:
method BaseMaskedArray.insert(loc: int, item) -> Self - added:
method BaseMaskedArray.kurt(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method BaseMaskedArray.median(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method BaseMaskedArray.sem(*, skipna: bool=…, axis: AxisInt | None=…, ddof: int=…, **kwargs) - added:
method BaseMaskedArray.shift(periods: int=…, fill_value=…) -> Self - added:
method BaseMaskedArray.skew(*, skipna: bool=…, axis: AxisInt | None=…, **kwargs) - added:
method BaseMaskedArray.view(dtype: None=…) -> Self | (dtype: Dtype | None=…) -> ArrayLike
- added:
method NumpyExtensionArray.searchsorted(value: NumpyValueArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter | None=…) -> npt.NDArray[np.intp] | np.intp - added:
method NumpyExtensionArray.take(indices: TakeIndexer, *, allow_fill: bool=…, fill_value: Any=…, axis: AxisInt=…) -> Self
- removed:
field PeriodArray.dayofweek - removed:
field PeriodArray.dayofyear - removed:
field PeriodArray.daysinmonth - removed:
field PeriodArray.weekday - removed:
method PeriodArray.fillna(value=…, method=…, limit: int | None=…, copy: bool=…) -> Self - changed:
constructor PeriodArray(values, dtype: Dtype | None=…, freq=…, copy: bool=…) -> None → constructor PeriodArray(values, dtype: Dtype | None=…, copy: bool=…) -> None - changed:
function period_array(data: Sequence[Period | str | None] | AnyArrayLike, freq: str | Tick | BaseOffset | None=…, copy: bool=…) -> PeriodArray → function period_array(data: Sequence[Period | str | None] | AnyArrayLike, dtype: PeriodDtype | None=…) -> PeriodArray - changed:
function validate_dtype_freq(dtype, freq: BaseOffsetT) -> BaseOffsetT | (dtype, freq: timedelta | str | None) -> BaseOffset → function validate_dtype_freq(dtype: DtypeObj | None, dtype2: DtypeObj | None) -> PeriodDtype | None - added:
property PeriodArray.dayofweek - added:
property PeriodArray.dayofyear - added:
property PeriodArray.daysinmonth - added:
property PeriodArray.weekday
- changed:
method SparseAccessor.to_coo(row_levels=…, column_levels=…, sort_labels: bool=…) → method SparseAccessor.to_coo(row_levels=…, column_levels=…, sort_labels: bool=…) -> tuple[coo_matrix, list[IndexLabel], list[IndexLabel]] - changed:
method SparseFrameAccessor.to_coo() → method SparseFrameAccessor.to_coo() -> spmatrix
- removed:
class ellipsis(Enum) - removed:
field ellipsis.Ellipsis - removed:
variable Ellipsis - removed:
variable ellipsis - changed:
method SparseArray.all(axis=…, *args, **kwargs) → method SparseArray.all(axis=…, *args, skipna: bool=…, **kwargs) -> bool - changed:
method SparseArray.any(axis: AxisInt=…, *args, **kwargs) -> bool → method SparseArray.any(axis: AxisInt=…, *args, skipna: bool=…, **kwargs) -> bool - changed:
method SparseArray.fillna(value=…, method: FillnaOptions | None=…, limit: int | None=…, copy: bool=…) -> Self → method SparseArray.fillna(value, limit: int | None=…, copy: bool=…) -> Self - changed:
method SparseArray.map(mapper, na_action=…) -> Self → method SparseArray.map(mapper, na_action: Literal['ignore'] | None=…) -> Self - changed:
method SparseArray.mean(axis: Axis=…, *args, **kwargs) → method SparseArray.mean(axis: Axis=…, *args, skipna: bool=…, **kwargs) - changed:
static method SparseArray.from_spmatrix(data: spmatrix) -> Self → static method SparseArray.from_spmatrix(data: _SparseMatrixLike) -> Self - added:
method SparseArray.insert(loc: int, item) -> Self - added:
method SparseArray.kurt(*, axis: AxisInt=…, skipna: bool=…, **kwargs) - added:
method SparseArray.median(*, axis: AxisInt=…, skipna: bool=…, **kwargs) - added:
method SparseArray.memory_usage(deep: bool=…) -> int - added:
method SparseArray.prod(*, axis: AxisInt=…, min_count: int=…, skipna: bool=…, **kwargs) -> Scalar - added:
method SparseArray.sem(*, axis: AxisInt=…, ddof: int=…, skipna: bool=…, **kwargs) - added:
method SparseArray.skew(*, axis: AxisInt=…, skipna: bool=…, **kwargs) - added:
method SparseArray.sort(*, ascending: bool=…, kind: SortKind=…, na_position: str=…) -> None - added:
method SparseArray.std(*, axis: AxisInt=…, ddof: int=…, skipna: bool=…, **kwargs) - added:
method SparseArray.var(*, axis: AxisInt=…, ddof: int=…, skipna: bool=…, **kwargs) - added:
static method SparseArray.from_indices(data, indices, length: int, fill_value=…, kind: SparseIndexKind=…, dtype: Dtype | None=…) -> Self
- removed:
class StringArrayNumpySemantics(StringArray) - changed:
constructor StringArray(values, copy: bool=…) -> None → constructor StringArray(values, *, dtype: StringDtype | None=…, copy: bool=…) -> None - changed:
method BaseStringArray.tolist() → method BaseStringArray.tolist() -> list[Any] - changed:
method BaseStringArray.view(dtype: Dtype | None=…) -> ArrayLike → method BaseStringArray.view(dtype: None=…) -> Self | (dtype: Dtype | None=…) -> ArrayLike - changed:
method StringArray.max(axis=…, skipna: bool=…, **kwargs) -> Scalar → method StringArray.max(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> Scalar - changed:
method StringArray.min(axis=…, skipna: bool=…, **kwargs) -> Scalar → method StringArray.min(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.all(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> bool - added:
method StringArray.any(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> bool - added:
method StringArray.isna() -> np.ndarray - added:
method StringArray.kurt(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.mean(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.median(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.prod(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.sem(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.skew(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.std(*, skipna: bool=…, **kwargs) -> Scalar - added:
method StringArray.var(*, skipna: bool=…, **kwargs) -> Scalar - added:
property StringDtype.storage -> str
- removed:
class ArrowStringArrayNumpySemantics(ArrowStringArray) - removed:
variable ArrowStringScalarOrNAT - changed:
constructor ArrowStringArray(values) -> None → constructor ArrowStringArray(values, *, dtype: StringDtype | None=…) -> None
- changed:
function sequence_to_td64ns(data, copy: bool=…, unit=…, errors: DateTimeErrorChoices=…) -> tuple[np.ndarray, Tick | None] → function sequence_to_td64ns(data, copy: bool=…, unit=…, errors: DateTimeErrorChoices=…) -> np.ndarray
- changed:
method IndexOpsMixin.drop_duplicates(*, keep: DropKeep=…) → method IndexOpsMixin.drop_duplicates(*, keep: DropKeep=…) -> Self - changed:
method IndexOpsMixin.tolist() → method IndexOpsMixin.tolist() -> list[Any]
- added:
class Expression - added:
constructor Expression(func: Callable[[DataFrame], Any], repr_str: str, needs_parenthese: bool=…) -> None - added:
function col(col_name: Hashable) -> Expression - added:
method Expression.case_when(caselist: Sequence[tuple[Any, Any]]) -> Expression
- removed:
function is_builtin_func(arg) - changed:
function all_none(*args) -> bool → function all_none(*args: object) -> bool - changed:
function all_not_none(*args) -> bool → function all_not_none(*args: object) -> bool - changed:
function any_none(*args) -> bool → function any_none(*args: object) -> bool - changed:
function any_not_none(*args) -> bool → function any_not_none(*args: object) -> bool - changed:
function apply_if_callable(maybe_callable, obj, **kwargs) → function apply_if_callable(maybe_callable: Any, obj: Any, **kwargs: Any) -> Any - changed:
function cast_scalar_indexer(val) → function cast_scalar_indexer(val: Any) -> Any - changed:
function consensus_name_attr(objs) → function consensus_name_attr(objs: list[Series | DataFrame]) -> Hashable | None - changed:
function count_not_none(*args) -> int → function count_not_none(*args: object) -> int - changed:
function flatten(line) → function flatten(line: Iterable) -> Generator[Any] - changed:
function get_callable_name(obj) → function get_callable_name(obj: object) -> str | None - changed:
function get_rename_function(mapper) → function get_rename_function(mapper: Any) -> Callable - changed:
function is_empty_slice(obj) -> bool → function is_empty_slice(obj: object) -> bool - changed:
function is_full_slice(obj, line: int) -> bool → function is_full_slice(obj: object, line: int) -> bool - changed:
function is_null_slice(obj) -> bool → function is_null_slice(obj: object) -> bool - changed:
function is_true_slices(line) -> list[bool] → function is_true_slices(line: abc.Iterable) -> abc.Generator[bool, None, None] - changed:
function maybe_make_list(obj) → function maybe_make_list(obj: Any) -> list | tuple | None - changed:
function not_none(*args) → function not_none(*args: object) -> Generator[object] - changed:
function pipe(obj, func: Callable[..., T] | tuple[Callable[..., T], str], *args, **kwargs) -> T → function pipe(obj: _T, func: Callable[Concatenate[_T, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (obj: Any, func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T - changed:
function require_length_match(data, index: Index) -> None → function require_length_match(data: Any, index: Index) -> None - changed:
function standardize_mapping(into) → function standardize_mapping(into: type | abc.Mapping) -> type | partial - changed:
function temp_setattr(obj, attr: str, value, condition: bool=…) -> Generator[None, None, None] → function temp_setattr(obj: Any, attr: str, value: Any, condition: bool=…) -> Generator[Any] - added:
function is_local_in_caller_frame(obj: NDFrame) -> bool - added:
function is_setitem_syntax_in_caller_frame() -> bool
- changed:
function reconstruct_object(typ, obj, axes, dtype) → function reconstruct_object(typ, obj, axes, dtype, name)
- added:
function warn_numexpr_blocked() -> None - added:
variable BLOCKED_NUMEXPR_VERSIONS - added:
variable NUMEXPR_BLOCKED_VERSION - added:
variable NUMEXPR_BLOCKED_VERSION: str | None
- changed:
function ensure_decoded(s) -> str → function ensure_decoded(s: str | bytes) -> str - changed:
function result_type_many(*arrays_and_dtypes) → function result_type_many(*arrays_and_dtypes: Any) -> DtypeObj
- changed:
function eval(expr: str | BinOp, parser: str=…, engine: str | None=…, local_dict=…, global_dict=…, resolvers=…, level: int=…, target=…, inplace: bool=…) → function eval(expr: str | BinOp, parser: str=…, engine: str | None=…, local_dict=…, global_dict=…, resolvers=…, level: int=…, target=…, inplace: bool | lib.NoDefault=…) -> Any
- changed:
function evaluate(op, a, b, use_numexpr: bool=…) → function evaluate(op, left_op, right_op, use_numexpr: bool=…) - changed:
function where(cond, a, b, use_numexpr: bool=…) → function where(cond, left_op, right_op, use_numexpr: bool=…) - added:
function normalize_numexpr_result(result)
- removed:
function isnumeric(dtype) -> bool - removed:
variable SPECIAL_CASE_ARITH_OPS_SYMS
- removed:
function tokenize_backtick_quoted_string(token_generator: Iterator[tokenize.TokenInfo], source: str, string_start: int) -> tuple[int, str] - added:
class ParseState(Enum) - added:
field ParseState.DEFAULT - added:
field ParseState.IN_BACKTICK - added:
field ParseState.IN_DOUBLE_QUOTE - added:
field ParseState.IN_SINGLE_QUOTE
- changed:
constructor TermValue(value, converted, kind: str) -> None → constructor TermValue(value, converted, kind: str, truncated: bool=…) -> None - changed:
method BinOp.convert_value(v) -> TermValue → method BinOp.convert_value(conv_val) -> TermValue - added:
property BinOp.ordered
- removed:
property Scope.full_scope -> DeepChainMap - changed:
field Scope.resolvers: DeepChainMap → field Scope.resolvers: DeepChainMap[str, Any] - changed:
field Scope.scope: DeepChainMap → field Scope.scope: DeepChainMap[str, Any] - changed:
field Scope.temps: dict → field Scope.temps: dict[str, Any] - added:
property Scope.full_scope -> DeepChainMap[str, Any]
- removed:
function use_inf_as_na_cb(key) -> None - removed:
variable data_manager_doc - removed:
variable pc_colspace_doc - removed:
variable use_inf_as_na_doc - changed:
function register_converter_cb(key) -> None → function register_converter_cb(key: str) -> None - changed:
function register_plotting_backend_cb(key) -> None → function register_plotting_backend_cb(key: str | None) -> None - changed:
function table_schema_cb(key) -> None → function table_schema_cb(key: str) -> None - changed:
function use_bottleneck_cb(key) -> None → function use_bottleneck_cb(key: str) -> None - changed:
function use_numba_cb(key) -> None → function use_numba_cb(key: str) -> None - changed:
function use_numexpr_cb(key) -> None → function use_numexpr_cb(key: str) -> None - added:
variable max_threads_doc - added:
variable performance_warnings
- removed:
export is_interval
- changed:
function astype_array_safe(values: ArrayLike, dtype, copy: bool=…, errors: IgnoreRaise=…) -> ArrayLike → function astype_array_safe(values: ArrayLike, dtype: Dtype, copy: bool=…, errors: IgnoreRaise=…) -> ArrayLike - added:
function astype_float_to_int_nansafe(values: np.ndarray, dtype: np.dtype, copy: bool) -> np.ndarray
- changed:
constructor StorageExtensionDtype(storage: str | None=…) -> None → constructor StorageExtensionDtype(storage: str) -> None - changed:
static method ExtensionDtype.construct_array_type() -> type_t[ExtensionArray] → method ExtensionDtype.construct_array_type() -> type_t[ExtensionArray] - added:
property StorageExtensionDtype.storage -> str
- removed:
function invalidate_string_dtypes(dtype_set: set[DtypeObj]) -> None - removed:
function maybe_cast_pointwise_result(result: ArrayLike, dtype: DtypeObj, numeric_only: bool=…, same_dtype: bool=…) -> ArrayLike - removed:
function maybe_convert_platform(values: list | tuple | range | np.ndarray | ExtensionArray) -> ArrayLike - removed:
function maybe_infer_to_datetimelike(value: npt.NDArray[np.object_], convert_to_nullable_dtype: bool=…) -> np.ndarray | DatetimeArray | TimedeltaArray | PeriodArray | IntervalArray - changed:
function coerce_indexer_dtype(indexer, categories) -> np.ndarray → function coerce_indexer_dtype(indexer: np.ndarray, categories: Index) -> np.ndarray - changed:
function construct_1d_object_array_from_listlike(values: Collection) -> np.ndarray → function construct_1d_object_array_from_listlike(values: Collection[Any]) -> np.ndarray - changed:
function infer_dtype_from(val) -> tuple[DtypeObj, Any] → function infer_dtype_from(val: object) -> tuple[DtypeObj, Any] - changed:
function infer_dtype_from_array(arr) -> tuple[DtypeObj, ArrayLike] → function infer_dtype_from_array(arr: Any) -> tuple[DtypeObj, ArrayLike] - changed:
function infer_dtype_from_scalar(val) -> tuple[DtypeObj, Any] → function infer_dtype_from_scalar(val: object) -> tuple[DtypeObj, Any] - changed:
function is_nested_object(obj) -> bool → function is_nested_object(obj: object) -> bool - changed:
function maybe_box_native(value: Scalar | None | NAType) -> Scalar | None | NAType → function maybe_box_native(value: Scalar | NAType | None) -> Scalar | NAType | None - changed:
function maybe_cast_to_datetime(value: np.ndarray | list, dtype: np.dtype) -> ExtensionArray | np.ndarray → function maybe_cast_to_datetime(value: np.ndarray | list[Any], dtype: np.dtype) -> DatetimeArray | TimedeltaArray | np.ndarray - changed:
function maybe_cast_to_integer_array(arr: list | np.ndarray, dtype: np.dtype) -> np.ndarray → function maybe_cast_to_integer_array(arr: list[Any] | np.ndarray, dtype: np.dtype) -> np.ndarray - changed:
function maybe_downcast_to_dtype(result: np.ndarray, dtype: str | np.dtype) -> np.ndarray | (result: ExtensionArray, dtype: str | np.dtype) -> ArrayLike → function maybe_downcast_to_dtype(result: np.ndarray, dtype: np.dtype) -> np.ndarray | (result: ExtensionArray, dtype: np.dtype) -> ExtensionArray - changed:
function maybe_promote(dtype: np.dtype, fill_value=…) → function maybe_promote(dtype: np.dtype, fill_value: Any=…) -> tuple[np.dtype, Any] - added:
function floats_fit_integer_dtype(values: np.ndarray, dtype: np.dtype) -> bool - added:
function maybe_unbox_numpy_scalar(value: Any, *, object_with_dtype: Any=…) -> Any
- removed:
export is_interval - removed:
function infer_dtype_from_object(dtype) -> type - changed:
function classes(*klasses) -> Callable → function classes(*klasses) -> Callable[[type], bool]
- changed:
function concat_compat(to_concat: Sequence[ArrayLike], axis: AxisInt=…, ea_compat_axis: bool=…) -> ArrayLike → function concat_compat(to_concat: Sequence[ArrayLike], axis: AxisInt=…, ea_compat_axis: bool=…, union_categories: bool=…) -> ArrayLike - changed:
function union_categoricals(to_union, sort_categories: bool=…, ignore_order: bool=…) -> Categorical → function union_categoricals(to_union: Sequence[CategoricalIndex | Series | Categorical], sort_categories: bool=…, ignore_order: bool=…) -> Categorical - added:
function union_categories_compat(to_union: Sequence[Categorical]) -> Categorical
- removed:
property DatetimeTZDtype.unit -> str_type - removed:
property IntervalDtype.type -> type[Interval] - changed:
constructor DatetimeTZDtype(unit: str_type | DatetimeTZDtype=…, tz=…) -> None → constructor DatetimeTZDtype(unit: TimeUnit | DatetimeTZDtype=…, tz=…) -> None - changed:
field BaseMaskedDtype.base → field BaseMaskedDtype.base: DtypeObj | None - changed:
field PandasExtensionDtype.subdtype → field PandasExtensionDtype.subdtype: DtypeObj | None - changed:
static method ArrowDtype.construct_array_type() -> type_t[ArrowExtensionArray] → method ArrowDtype.construct_array_type() -> type_t[ArrowExtensionArray] - changed:
static method BaseMaskedDtype.construct_array_type() -> type_t[BaseMaskedArray] → method BaseMaskedDtype.construct_array_type() -> type_t[BaseMaskedArray] - changed:
static method CategoricalDtype.construct_array_type() -> type_t[Categorical] → method CategoricalDtype.construct_array_type() -> type_t[Categorical] - changed:
static method DatetimeTZDtype.construct_array_type() -> type_t[DatetimeArray] → method DatetimeTZDtype.construct_array_type() -> type_t[DatetimeArray] - changed:
static method IntervalDtype.construct_array_type() -> type[IntervalArray] → method IntervalDtype.construct_array_type() -> type[IntervalArray] - changed:
static method NumpyEADtype.construct_array_type() -> type_t[NumpyExtensionArray] → method NumpyEADtype.construct_array_type() -> type_t[NumpyExtensionArray] - changed:
static method PeriodDtype.construct_array_type() -> type_t[PeriodArray] → method PeriodDtype.construct_array_type() -> type_t[PeriodArray] - changed:
static method SparseDtype.construct_array_type() -> type_t[SparseArray] → method SparseDtype.construct_array_type() -> type_t[SparseArray] - added:
property DatetimeTZDtype.unit -> TimeUnit - added:
property IntervalDtype.type -> type[Interval[Any]]
- changed:
function create_pandas_abc_type(name, attr, comp) → function create_pandas_abc_type(name: str, attr: str, comp: tuple[str, ...] | set[str]) -> type
- removed:
variable is_interval - changed:
function is_array_like(obj) -> bool → function is_array_like(obj: object) -> bool - changed:
function is_dataclass(item) -> bool → function is_dataclass(item: object) -> bool - changed:
function is_dict_like(obj) -> bool → function is_dict_like(obj: object) -> bool - changed:
function is_file_like(obj) -> bool → function is_file_like(obj: object) -> bool - changed:
function is_hashable(obj) -> TypeGuard[Hashable] → function is_hashable(obj: object, allow_slice: bool=…) -> TypeGuard[Hashable] - changed:
function is_named_tuple(obj) -> bool → function is_named_tuple(obj: object) -> bool - changed:
function is_nested_list_like(obj) -> bool → function is_nested_list_like(obj: object) -> bool - changed:
function is_number(obj) -> TypeGuard[Number | np.number] → function is_number(obj: object) -> TypeGuard[Number | np.number] - changed:
function is_re(obj) -> TypeGuard[Pattern] → function is_re(obj: object) -> TypeGuard[Pattern[Any]] - changed:
function is_re_compilable(obj) -> bool → function is_re_compilable(obj: object) -> bool - changed:
function is_sequence(obj) -> bool → function is_sequence(obj: object) -> bool - changed:
function iterable_not_string(obj) -> bool → function iterable_not_string(obj: object) -> bool
- removed:
function infer_fill_value(val) - removed:
variable INF_AS_NA - removed:
variable nan_checker - changed:
function array_equivalent(left, right, strict_nan: bool=…, dtype_equal: bool=…) -> bool → function array_equivalent(left: ArrayLike, right: ArrayLike, strict_nan: bool=…, dtype_equal: bool=…) -> bool - changed:
function is_valid_na_for_dtype(obj, dtype: DtypeObj) -> bool → function is_valid_na_for_dtype(obj: object, dtype: DtypeObj) -> bool - changed:
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 → function isna(obj: Scalar | Pattern | NAType | NaTType) -> 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 na_value_for_dtype(dtype: DtypeObj, compat: bool=…) → function na_value_for_dtype(dtype: DtypeObj, compat: bool=…) -> Scalar - changed:
function notna(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 notna(obj: Scalar | Pattern | NAType | NaTType) -> 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: Series | Index | np.ndarray) → function remove_na_arraylike(arr: _ArrLikeT) -> _ArrLikeT
- removed:
method DataFrame.applymap(func: PythonFuncType, na_action: NaAction | None=…, **kwargs) -> DataFrame - removed:
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.aggregate(func=…, axis: Axis=…, *args, **kwargs) → method DataFrame.aggregate(func=…, axis: Axis=…, *args, **kwargs) -> DataFrame | Series - changed:
method DataFrame.all(axis: Axis | None=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool → method DataFrame.all(*, axis: Axis=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | (*, axis: None, bool_only: bool=…, skipna: bool=…, **kwargs) -> bool | (*, axis: Axis | None, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool - changed:
method DataFrame.any(*, axis: Axis | None=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool → method DataFrame.any(*, axis: Axis=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | (*, axis: None, bool_only: bool=…, skipna: bool=…, **kwargs) -> bool | (*, 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=…, by_row: Literal[False, 'compat']=…, engine: Literal['python', 'numba']=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) → method DataFrame.apply(func: AggFuncType, axis: Axis=…, raw: bool=…, result_type: Literal['expand', 'reduce', 'broadcast'] | None=…, args=…, by_row: Literal[False, 'compat']=…, engine: Callable | Literal['python', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, **kwargs) - changed:
method DataFrame.corrwith(other: DataFrame | Series, axis: Axis=…, drop: bool=…, method: CorrelationMethod=…, numeric_only: bool=…) -> Series → method DataFrame.corrwith(other: DataFrame | Series, axis: Axis=…, drop: bool=…, method: CorrelationMethod=…, numeric_only: bool=…, min_periods: int | None=…) -> Series - changed:
method DataFrame.count(axis: Axis=…, numeric_only: bool=…) → method DataFrame.count(axis: Axis=…, numeric_only: bool=…) -> Series - changed:
method DataFrame.cummax(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method DataFrame.cummax(axis: Axis=…, skipna: bool=…, numeric_only: bool=…, *args, **kwargs) -> Self - changed:
method DataFrame.cummin(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method DataFrame.cummin(axis: Axis=…, skipna: bool=…, numeric_only: bool=…, *args, **kwargs) -> Self - changed:
method DataFrame.cumprod(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method DataFrame.cumprod(axis: Axis=…, skipna: bool=…, numeric_only: bool=…, *args, **kwargs) -> Self - changed:
method DataFrame.cumsum(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method DataFrame.cumsum(axis: Axis=…, skipna: bool=…, numeric_only: bool=…, *args, **kwargs) -> Self - changed:
method DataFrame.drop(labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabel=…, columns: IndexLabel=…, level: Level=…, inplace: Literal[True], errors: IgnoreRaise=…) -> None | (labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabel=…, columns: IndexLabel=…, level: Level=…, inplace: Literal[False]=…, errors: IgnoreRaise=…) -> DataFrame | (labels: IndexLabel=…, *, axis: Axis=…, index: IndexLabe… → method DataFrame.drop(labels: IndexLabel | ListLike=…, *, axis: Axis=…, index: IndexLabel | ListLike=…, columns: IndexLabel | ListLike=…, level: Level=…, inplace: Literal[True], errors: IgnoreRaise=…) -> None | (labels: IndexLabel | ListLike=…, *, axis: Axis=…, index: IndexLabel | ListLike=…, columns: IndexLabel | ListLike=…, level: Level=…, inplace: Literal[False]=…, errors: IgnoreRaise=…) -> Da… - changed:
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=…… → method DataFrame.drop_duplicates(subset: Hashable | Iterable[Hashable] | None=…, *, keep: DropKeep=…, inplace: Literal[True], ignore_index: bool=…) -> None | (subset: Hashable | Iterable[Hashable] | None=…, *, keep: DropKeep=…, inplace: Literal[False]=…, ignore_index: bool=…) -> DataFrame | (subset: Hashable | Iterable[Hashable] | None=…, *, keep: DropKeep=…, inplace: bool | lib.NoDefault=…, igno… - changed:
method DataFrame.duplicated(subset: Hashable | Sequence[Hashable] | None=…, keep: DropKeep=…) -> Series → method DataFrame.duplicated(subset: Hashable | Iterable[Hashable] | None=…, keep: DropKeep=…) -> Series - changed:
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 → method DataFrame.groupby(by=…, level: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool=…, dropna: bool=…) -> DataFrameGroupBy - changed:
method DataFrame.insert(loc: int, column: Hashable, value: Scalar | AnyArrayLike, allow_duplicates: bool | lib.NoDefault=…) -> None → method DataFrame.insert(loc: int, column: Hashable, value: object, allow_duplicates: bool=…) -> None - changed:
method DataFrame.join(other: DataFrame | Series | Iterable[DataFrame | Series], on: IndexLabel | None=…, how: MergeHow=…, lsuffix: str=…, rsuffix: str=…, sort: bool=…, validate: JoinValidate | None=…) -> DataFrame → method DataFrame.join(other: DataFrame | Series | Iterable[DataFrame | Series], on: IndexLabel | None=…, how: MergeHow=…, lsuffix: str | lib.NoDefault=…, rsuffix: str | lib.NoDefault=…, sort: bool=…, validate: JoinValidate | None=…, *, suffixes: Suffixes | lib.NoDefault=…) -> DataFrame - changed:
method DataFrame.kurt(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method DataFrame.kurt(*, axis: Axis=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
method DataFrame.map(func: PythonFuncType, na_action: str | None=…, **kwargs) -> DataFrame → method DataFrame.map(func: PythonFuncType, na_action: Literal['ignore'] | None=…, **kwargs) -> DataFrame - changed:
method DataFrame.max(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method DataFrame.max(*, axis: Axis=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
method DataFrame.mean(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method DataFrame.mean(*, axis: Axis=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
method DataFrame.median(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method DataFrame.median(*, axis: Axis=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
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 → 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 | lib.NoDefault=…, indicator: str | bool=…, validate: MergeValidate | None=…) -> DataFrame - changed:
method DataFrame.min(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method DataFrame.min(*, axis: Axis=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
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 → method DataFrame.pivot_table(values=…, index=…, columns=…, aggfunc: AggFuncType=…, fill_value=…, margins: bool=…, dropna: bool=…, margins_name: Level=…, observed: bool=…, sort: bool=…, **kwargs) -> DataFrame - changed:
method DataFrame.prod(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) → method DataFrame.prod(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) -> Series - changed:
method DataFrame.query(expr: str, *, inplace: Literal[False]=…, **kwargs) -> DataFrame | (expr: str, *, inplace: Literal[True], **kwargs) -> None | (expr: str, *, inplace: bool=…, **kwargs) -> DataFrame | None → method DataFrame.query(expr: str, *, parser: Literal['pandas', 'python']=…, engine: Literal['python', 'numexpr'] | None=…, local_dict: dict[str, Any] | None=…, global_dict: dict[str, Any] | None=…, resolvers: list[Mapping] | None=…, level: int=…, inplace: Literal[False]=…) -> DataFrame | (expr: str, *, parser: Literal['pandas', 'python']=…, engine: Literal['python', 'numexpr'] | None=…, local_dic… - changed:
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 → method DataFrame.reindex(labels=…, *, index=…, columns=…, axis: Axis | None=…, method: ReindexMethod | None=…, copy: bool | lib.NoDefault=…, level: Level | None=…, fill_value: Scalar | None=…, limit: int | None=…, tolerance=…) -> DataFrame - changed:
method DataFrame.rename(mapper: Renamer | None=…, *, index: Renamer | None=…, columns: Renamer | None=…, axis: Axis | None=…, copy: bool | None=…, inplace: Literal[True], level: Level=…, errors: IgnoreRaise=…) -> None | (mapper: Renamer | None=…, *, index: Renamer | None=…, columns: Renamer | None=…, axis: Axis | None=…, copy: bool | None=…, inplace: Literal[False]=…, level: Level=…, errors: Igno… → method DataFrame.rename(mapper: Renamer | None=…, *, index: Renamer | None=…, columns: Renamer | None=…, axis: Axis | None=…, copy: bool | lib.NoDefault=…, inplace: Literal[True], level: Level=…, errors: IgnoreRaise=…) -> None | (mapper: Renamer | None=…, *, index: Renamer | None=…, columns: Renamer | None=…, axis: Axis | None=…, copy: bool | lib.NoDefault=…, inplace: Literal[False]=…, level: Lev… - 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] | None=…) -> DataFrame | (level: IndexLabel=…, *, drop: bool=…, inplace: Literal[True], col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool | lib.NoDefault=…, names:… → method DataFrame.reset_index(level: IndexLabel=…, *, drop: bool=…, inplace: Literal[False]=…, col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool=…, names: Hashable | Sequence[Hashable] | None=…) -> DataFrame | (level: IndexLabel=…, *, drop: bool=…, inplace: Literal[True], col_level: Hashable=…, col_fill: Hashable=…, allow_duplicates: bool=…, names: Hashable | Sequence[Hashable] |… - changed:
method DataFrame.select_dtypes(include=…, exclude=…) -> Self → method DataFrame.select_dtypes(include=…, exclude=…) -> DataFrame - changed:
method DataFrame.sem(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method DataFrame.sem(*, axis: Axis=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
method DataFrame.set_axis(labels, *, axis: Axis=…, copy: bool | None=…) -> DataFrame → method DataFrame.set_axis(labels, *, axis: Axis=…, copy: bool | lib.NoDefault=…) -> DataFrame - changed:
method DataFrame.set_index(keys, *, drop: bool=…, append: bool=…, inplace: Literal[False]=…, verify_integrity: bool=…) -> DataFrame | (keys, *, drop: bool=…, append: bool=…, inplace: Literal[True], verify_integrity: bool=…) -> None → method DataFrame.set_index(keys, *, drop: bool=…, append: bool=…, inplace: Literal[False]=…, verify_integrity: bool | lib.NoDefault=…) -> DataFrame | (keys, *, drop: bool=…, append: bool=…, inplace: Literal[True], verify_integrity: bool | lib.NoDefault=…) -> None | (keys, *, drop: bool=…, append: bool=…, inplace: bool | lib.NoDefault=…, verify_integrity: bool | lib.NoDefault=…) -> DataFrame | None - changed:
method DataFrame.skew(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method DataFrame.skew(*, axis: Axis=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
method DataFrame.std(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method DataFrame.std(*, axis: Axis=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | Any - changed:
method DataFrame.sum(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) → method DataFrame.sum(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) -> Series - changed:
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:… → 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=…, decim… - changed:
method DataFrame.to_markdown(buf: FilePath | WriteBuffer[str] | None=…, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | None → method DataFrame.to_markdown(buf: None=…, *, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | (buf: FilePath | WriteBuffer[str], *, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> None | (buf: FilePath | WriteBuffer[str] | None, *, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | None - changed:
method DataFrame.to_orc(path: FilePath | WriteBuffer[bytes] | None=…, *, engine: Literal['pyarrow']=…, index: bool | None=…, engine_kwargs: dict[str, Any] | None=…) -> bytes | None → method DataFrame.to_orc(path: None=…, *, engine: Literal['pyarrow']=…, index: bool | None=…, engine_kwargs: dict[str, Any] | None=…) -> bytes | (path: FilePath | WriteBuffer[bytes], *, engine: Literal['pyarrow']=…, index: bool | None=…, engine_kwargs: dict[str, Any] | None=…) -> None | (path: FilePath | WriteBuffer[bytes] | None, *, engine: Literal['pyarrow']=…, index: bool | None=…, engine_kwarg… - changed:
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… → method DataFrame.to_parquet(path: None=…, *, engine: Literal['auto', 'pyarrow', 'fastparquet']=…, compression: ParquetCompressionOptions=…, index: bool | None=…, partition_cols: list[str] | None=…, storage_options: StorageOptions=…, filesystem: Any=…, **kwargs) -> bytes | (path: FilePath | WriteBuffer[bytes], *, engine: Literal['auto', 'pyarrow', 'fastparquet']=…, compression: ParquetCompressionO… - changed:
method DataFrame.to_period(freq: Frequency | None=…, axis: Axis=…, copy: bool | None=…) -> DataFrame → method DataFrame.to_period(freq: Frequency | None=…, axis: Axis=…, copy: bool | lib.NoDefault=…) -> DataFrame - changed:
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… → 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=…, sho… - changed:
method DataFrame.to_timestamp(freq: Frequency | None=…, how: ToTimestampHow=…, axis: Axis=…, copy: bool | None=…) -> DataFrame → method DataFrame.to_timestamp(freq: Frequency | None=…, how: ToTimestampHow=…, axis: Axis=…, copy: bool | lib.NoDefault=…) -> DataFrame - changed:
method DataFrame.transpose(*args, copy: bool=…) -> DataFrame → method DataFrame.transpose(*args, copy: bool | lib.NoDefault=…) -> DataFrame - changed:
method DataFrame.unstack(level: IndexLabel=…, fill_value=…, sort: bool=…) → method DataFrame.unstack(level: IndexLabel=…, fill_value=…, sort: bool=…) -> DataFrame | Series - changed:
method DataFrame.var(axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) → method DataFrame.var(*, axis: Axis=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | (*, axis: None, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Any | (*, axis: Axis | None, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | Any - added:
method DataFrame.describe(percentiles=…, include=…, exclude=…) -> DataFrame - added:
method DataFrame.rename_axis(mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: Literal[False]=…) -> DataFrame | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: Literal[True]) -> None | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: b… - added:
method DataFrame.select(arg0: ListLike | Hashable=…, /, **kwargs: Any) -> DataFrame | (*args: Hashable | Expression, **kwargs: Any) -> DataFrame - added:
method DataFrame.to_iceberg(table_identifier: str, catalog_name: str | None=…, *, catalog_properties: dict[str, Any] | None=…, location: str | None=…, append: bool=…, snapshot_properties: dict[str, str] | None=…) -> None - added:
static method DataFrame.from_arrow(data: ArrowArrayExportable | ArrowStreamExportable) -> DataFrame
- removed:
function make_doc(name: str, ndim: int) -> str - removed:
method NDFrame.backfill(*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, downcast: dict | None | lib.NoDefault=…) -> Self | None - removed:
method NDFrame.bool() -> bool_t - removed:
method NDFrame.first(offset) -> Self - removed:
method NDFrame.last(offset) -> Self - removed:
method NDFrame.pad(*, axis: None | Axis=…, inplace: bool_t=…, limit: None | int=…, downcast: dict | None | lib.NoDefault=…) -> Self | None - removed:
method NDFrame.swapaxes(axis1: Axis, axis2: Axis, copy: bool_t | None=…) -> Self - removed:
property NDFrame.empty -> bool_t - removed:
variable bool_t - changed:
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] → method NDFrame.align(other: NDFrameT, join: AlignJoin=…, axis: Axis | None=…, level: Level | None=…, copy: bool | lib.NoDefault=…, fill_value: Hashable | None=…) -> tuple[Self, NDFrameT] - changed:
method NDFrame.all(axis: Axis=…, bool_only: bool_t=…, skipna: bool_t=…, **kwargs) -> Series | bool_t → method NDFrame.all(*, axis: Axis=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool - changed:
method NDFrame.any(axis: Axis | None=…, bool_only: bool_t=…, skipna: bool_t=…, **kwargs) -> Series | bool_t → method NDFrame.any(*, axis: Axis | None=…, bool_only: bool=…, skipna: bool=…, **kwargs) -> Series | bool - changed:
method NDFrame.asfreq(freq: Frequency, method: FillnaOptions | None=…, how: Literal['start', 'end'] | None=…, normalize: bool_t=…, fill_value: Hashable | None=…) -> Self → method NDFrame.asfreq(freq: Frequency, method: FillnaOptions | None=…, how: ToTimestampHow | None=…, normalize: bool=…, fill_value: Hashable | None=…) -> Self - changed:
method NDFrame.astype(dtype, copy: bool_t | None=…, errors: IgnoreRaise=…) -> Self → method NDFrame.astype(dtype, copy: bool | lib.NoDefault=…, errors: IgnoreRaise=…) -> Self - changed:
method NDFrame.at_time(time, asof: bool_t=…, axis: Axis | None=…) -> Self → method NDFrame.at_time(time, asof: bool=…, axis: Axis | None=…) -> Self - changed:
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… → method NDFrame.bfill(*, axis: Axis | None=…, inplace: bool=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…) -> Self - changed:
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 → method NDFrame.clip(lower=…, upper=…, *, axis: Axis | None=…, inplace: bool=…, **kwargs) -> Self - changed:
method NDFrame.compare(other, align_axis: Axis=…, keep_shape: bool_t=…, keep_equal: bool_t=…, result_names: Suffixes=…) → method NDFrame.compare(other: Self, align_axis: Axis=…, keep_shape: bool=…, keep_equal: bool=…, result_names: Suffixes=…) - 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=…, dtype_backend: DtypeBackend=…) -> Self → method NDFrame.convert_dtypes(infer_objects: bool | lib.NoDefault=…, convert_string: bool | lib.NoDefault=…, convert_integer: bool | lib.NoDefault=…, convert_boolean: bool | lib.NoDefault=…, convert_floating: bool | lib.NoDefault=…, dtype_backend: DtypeBackend=…) -> Self - changed:
method NDFrame.copy(deep: bool_t | None=…) -> Self → method NDFrame.copy(deep: bool=…) -> Self - changed:
method NDFrame.cummax(axis: Axis | None=…, skipna: bool_t=…, *args, **kwargs) → method NDFrame.cummax(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method NDFrame.cummin(axis: Axis | None=…, skipna: bool_t=…, *args, **kwargs) → method NDFrame.cummin(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method NDFrame.cumprod(axis: Axis | None=…, skipna: bool_t=…, *args, **kwargs) → method NDFrame.cumprod(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method NDFrame.cumsum(axis: Axis | None=…, skipna: bool_t=…, *args, **kwargs) → method NDFrame.cumsum(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> 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=…) -> Self | (labels: IndexLabel=…, *, axis: Axis=…, index: In… → method NDFrame.drop(labels: IndexLabel | ListLike=…, *, axis: Axis=…, index: IndexLabel | ListLike=…, columns: IndexLabel | ListLike=…, level: Level | None=…, inplace: Literal[True], errors: IgnoreRaise=…) -> None | (labels: IndexLabel | ListLike=…, *, axis: Axis=…, index: IndexLabel | ListLike=…, columns: IndexLabel | ListLike=…, level: Level | None=…, inplace: Literal[False]=…, errors: IgnoreRa… - changed:
method NDFrame.equals(other: object) -> bool_t → method NDFrame.equals(other: object) -> bool - 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 | lib.NoDefault=…, times: np.ndarray | DataFrame | Series | None=…, method: Literal['single', 'table']=…) -> ExponentialMovingWindow → method NDFrame.ewm(com: float | None=…, span: float | None=…, halflife: float | TimedeltaConvertibleTypes | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool=…, ignore_na: bool=…, times: np.ndarray | DataFrame | Series | None=…, method: Literal['single', 'table']=…) -> ExponentialMovingWindow - changed:
method NDFrame.expanding(min_periods: int=…, axis: Axis | lib.NoDefault=…, method: Literal['single', 'table']=…) -> Expanding → method NDFrame.expanding(min_periods: int=…, method: Literal['single', 'table']=…) -> Expanding - changed:
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… → method NDFrame.ffill(*, axis: Axis | None=…, inplace: bool=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…) -> Self - changed:
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 | (… → method NDFrame.fillna(value: Hashable | Mapping | Series | DataFrame, *, axis: Axis | None=…, inplace: bool=…, limit: int | None=…) -> Self - changed:
method NDFrame.filter(items=…, like: str | None=…, regex: str | None=…, axis: Axis | None=…) -> Self → method NDFrame.filter(arg=…, /, like: str | None=…, regex: str | None=…, axis: Axis | None=…, *, items=…, cond=…, na: Literal['raise'] | bool=…) -> Self - changed:
method NDFrame.first_valid_index() -> Hashable | None → method NDFrame.first_valid_index() -> Hashable - changed:
method NDFrame.infer_objects(copy: bool_t | None=…) -> Self → method NDFrame.infer_objects(copy: bool | lib.NoDefault=…) -> Self - changed:
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… → method NDFrame.interpolate(method: InterpolateOptions=…, *, axis: Axis=…, limit: int | None=…, inplace: bool=…, limit_direction: Literal['forward', 'backward', 'both'] | None=…, limit_area: Literal['inside', 'outside'] | None=…, **kwargs) -> Self - changed:
method NDFrame.kurt(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.kurt(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
method NDFrame.last_valid_index() -> Hashable | None → method NDFrame.last_valid_index() -> Hashable - changed:
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 → method NDFrame.mask(cond, other=…, *, inplace: bool=…, axis: Axis | None=…, level: Level | None=…) -> Self - changed:
method NDFrame.max(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) → method NDFrame.max(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - changed:
method NDFrame.mean(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.mean(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
method NDFrame.median(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.median(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
method NDFrame.min(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) → method NDFrame.min(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) - changed:
method NDFrame.pct_change(periods: int=…, fill_method: FillnaOptions | None | lib.NoDefault=…, limit: int | None | lib.NoDefault=…, freq=…, **kwargs) -> Self → method NDFrame.pct_change(periods: int=…, fill_method: None=…, freq=…, **kwargs) -> Self - changed:
method NDFrame.pipe(func: Callable[..., T] | tuple[Callable[..., T], str], *args, **kwargs) -> T → method NDFrame.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T - changed:
method NDFrame.prod(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, min_count: int=…, **kwargs) → method NDFrame.prod(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) - changed:
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 → method NDFrame.rank(axis: Axis=…, method: RankMethod=…, numeric_only: bool=…, na_option: RankNaOption=…, ascending: bool=…, pct: bool=…) -> Self - changed:
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 → method NDFrame.reindex(labels=…, *, index=…, columns=…, axis: Axis | None=…, method: ReindexMethod | None=…, copy: bool | lib.NoDefault=…, level: Level | None=…, fill_value: Scalar | None=…, limit: int | None=…, tolerance=…) -> Self - changed:
method NDFrame.reindex_like(other, method: Literal['backfill', 'bfill', 'pad', 'ffill', 'nearest'] | None=…, copy: bool_t | None=…, limit: int | None=…, tolerance=…) -> Self → method NDFrame.reindex_like(other, method: Literal['backfill', 'bfill', 'pad', 'ffill', 'nearest'] | None=…, copy: bool | lib.NoDefault=…, limit: int | None=…, tolerance=…) -> Self - changed:
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… → method NDFrame.rename_axis(mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: Literal[False]=…) -> Self | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: Literal[True]) -> None | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, columns=…, axis: Axis=…, copy: bool | l… - changed:
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… → method NDFrame.replace(to_replace=…, value=…, *, inplace: bool=…, regex: bool=…) -> Self - changed:
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:… → method NDFrame.resample(rule, closed: Literal['right', 'left'] | None=…, label: Literal['right', 'left'] | None=…, convention: Literal['start', 'end', 's', 'e']=…, on: Level | None=…, level: Level | None=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys: bool=…) -> Resampler - changed:
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 → method NDFrame.rolling(window: int | dt.timedelta | str | BaseOffset | BaseIndexer, min_periods: int | None=…, center: bool=…, win_type: str | None=…, on: str | None=…, 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=…) -> Self → method NDFrame.sample(n: int | None=…, frac: float | None=…, replace: bool=…, weights=…, random_state: RandomState | None=…, axis: Axis | None=…, ignore_index: bool=…) -> Self - changed:
method NDFrame.sem(axis: Axis | None=…, skipna: bool_t=…, ddof: int=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.sem(*, axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
method NDFrame.set_axis(labels, *, axis: Axis=…, copy: bool_t | None=…) -> Self → method NDFrame.set_axis(labels, *, axis: Axis=…, copy: bool | lib.NoDefault=…) -> Self - changed:
method NDFrame.set_flags(*, copy: bool_t=…, allows_duplicate_labels: bool_t | None=…) -> Self → method NDFrame.set_flags(*, copy: bool | lib.NoDefault=…, allows_duplicate_labels: bool | None=…) -> Self - changed:
method NDFrame.skew(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.skew(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
method NDFrame.sort_index(*, axis: Axis=…, level: IndexLabel=…, ascending: bool_t | Sequence[bool_t]=…, inplace: Literal[True], kind: SortKind=…, na_position: NaPosition=…, sort_remaining: bool_t=…, ignore_index: bool_t=…, key: IndexKeyFunc=…) -> None | (*, axis: Axis=…, level: IndexLabel=…, ascending: bool_t | Sequence[bool_t]=…, inplace: Literal[False]=…, kind: SortKind=…, na_position: NaPositi… → method NDFrame.sort_index(*, axis: Axis=…, level: IndexLabel=…, ascending: bool | Sequence[bool]=…, inplace: Literal[True], kind: SortKind=…, na_position: NaPosition=…, sort_remaining: bool=…, ignore_index: bool=…, key: IndexKeyFunc=…) -> None | (*, axis: Axis=…, level: IndexLabel=…, ascending: bool | Sequence[bool]=…, inplace: Literal[False]=…, kind: SortKind=…, na_position: NaPosition=…, sort_r… - changed:
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… → method NDFrame.sort_values(*, axis: Axis=…, ascending: bool | Sequence[bool]=…, inplace: Literal[False]=…, kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> Self | (*, axis: Axis=…, ascending: bool | Sequence[bool]=…, inplace: Literal[True], kind: SortKind=…, na_position: NaPosition=…, ignore_index: bool=…, key: ValueKeyFunc=…) -> None | (*, axis: Axis=…,… - changed:
method NDFrame.squeeze(axis: Axis | None=…) → method NDFrame.squeeze(axis: Axis | None=…) -> Scalar | Series | DataFrame - changed:
method NDFrame.std(axis: Axis | None=…, skipna: bool_t=…, ddof: int=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.std(*, axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
method NDFrame.sum(axis: Axis | None=…, skipna: bool_t=…, numeric_only: bool_t=…, min_count: int=…, **kwargs) → method NDFrame.sum(*, axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, min_count: int=…, **kwargs) - changed:
method NDFrame.to_clipboard(excel: bool_t=…, sep: str | None=…, **kwargs) -> None → method NDFrame.to_clipboard(*, excel: bool=…, sep: str | None=…, **kwargs) -> None - changed:
method NDFrame.to_csv(path_or_buf: None=…, sep: str=…, na_rep: str=…, float_format: str | Callable | None=…, columns: Sequence[Hashable] | None=…, header: bool_t | list[str]=…, index: bool_t=…, index_label: IndexLabel | None=…, mode: str=…, encoding: str | None=…, compression: CompressionOptions=…, quoting: int | None=…, quotechar: str=…, lineterminator: str | None=…, chunksize: int | None=…, dat… → method NDFrame.to_csv(path_or_buf: None=…, *, sep: str=…, na_rep: str=…, float_format: str | Callable | None=…, columns: Sequence[Hashable] | None=…, header: bool | list[str]=…, index: bool=…, index_label: IndexLabel | None=…, mode: str=…, encoding: str | None=…, compression: CompressionOptions=…, quoting: int | None=…, quotechar: str=…, lineterminator: str | None=…, chunksize: int | None=…, date… - changed:
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… → 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=…, index: bool=…, index_label: IndexLabel | None=…, startrow: int=…, startcol: int=…, engine: Literal['openpyxl', 'xlsxwriter'] | None=…, merge_cells: bool=…, inf_rep: str=…, freeze… - changed:
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… → 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=…, format: Literal['fixed', 'table'] | None=…, index: bool=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, dropna: bool | lib.NoDefault | None=…, data_columns: Literal[True] | list[str] |… - changed:
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… → 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=…, date_unit: TimeUnit=…, default_handler: Callable[[Any], JSONSerializable] | None=…, lines: bool=…, compression: CompressionOptions=…, index: bo… - changed:
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=…… → method NDFrame.to_latex(buf: None=…, *, columns: Sequence[Hashable] | None=…, header: bool | SequenceNotStr[str]=…, index: bool=…, na_rep: str=…, formatters: FormattersType | None=…, float_format: FloatFormatType | None=…, sparsify: bool | None=…, index_names: bool=…, bold_rows: bool=…, column_format: str | None=…, longtable: bool | None=…, escape: bool | None=…, encoding: str | None=…, decimal:… - changed:
method NDFrame.to_pickle(path: FilePath | WriteBuffer[bytes], compression: CompressionOptions=…, protocol: int=…, storage_options: StorageOptions | None=…) -> 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: Literal['fail', 'replace', 'append']=…, index: bool_t=…, index_label: IndexLabel | None=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…) -> int | None → method NDFrame.to_sql(name: str, con, *, schema: str | None=…, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, index: bool=…, index_label: IndexLabel | None=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…) -> int | None - changed:
method NDFrame.truncate(before=…, after=…, axis: Axis | None=…, copy: bool_t | None=…) -> Self → method NDFrame.truncate(before=…, after=…, axis: Axis | None=…, copy: bool | lib.NoDefault=…) -> Self - changed:
method NDFrame.tz_convert(tz, axis: Axis=…, level=…, copy: bool_t | None=…) -> Self → method NDFrame.tz_convert(tz, axis: Axis=…, level=…, copy: bool | lib.NoDefault=…) -> Self - changed:
method NDFrame.tz_localize(tz, axis: Axis=…, level=…, copy: bool_t | None=…, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self → method NDFrame.tz_localize(tz, axis: Axis=…, level=…, copy: bool | lib.NoDefault=…, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - changed:
method NDFrame.var(axis: Axis | None=…, skipna: bool_t=…, ddof: int=…, numeric_only: bool_t=…, **kwargs) -> Series | float → method NDFrame.var(*, axis: Axis | None=…, skipna: bool=…, ddof: int=…, numeric_only: bool=…, **kwargs) -> Series | float - changed:
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 → method NDFrame.where(cond, other=…, *, inplace: bool=…, axis: Axis | None=…, level: Level | None=…) -> Self - changed:
method NDFrame.xs(key: IndexLabel, axis: Axis=…, level: IndexLabel | None=…, drop_level: bool_t=…) -> Self → method NDFrame.xs(key: IndexLabel, axis: Axis=…, level: IndexLabel | None=…, drop_level: bool=…) -> Self - added:
property NDFrame.empty -> bool
- changed:
function recode_for_groupby(c: Categorical, sort: bool, observed: bool) -> tuple[Categorical, Categorical | None] → function recode_for_groupby(c: Categorical, sort: bool, observed: bool) -> Categorical
- removed:
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 - removed:
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 - removed:
property DataFrameGroupBy.dtypes -> Series - changed:
class NamedAgg(NamedTuple) → class NamedAgg - changed:
method DataFrameGroupBy.aggregate(func=…, *args, engine=…, engine_kwargs=…, **kwargs) → method DataFrameGroupBy.aggregate(func=…, *args, engine=…, engine_kwargs=…, **kwargs) -> DataFrame - changed:
method DataFrameGroupBy.corrwith(other: DataFrame | Series, axis: Axis | lib.NoDefault=…, drop: bool=…, method: CorrelationMethod=…, numeric_only: bool=…) -> DataFrame → method DataFrameGroupBy.corrwith(other: DataFrame | Series, drop: bool=…, method: CorrelationMethod=…, numeric_only: bool=…) -> DataFrame - changed:
method DataFrameGroupBy.filter(func, dropna: bool=…, *args, **kwargs) → method DataFrameGroupBy.filter(func, dropna: bool=…, *args, **kwargs) -> DataFrame - changed:
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) → 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[float, float] | None=…, layout: tuple[int, int] | None=…, bins: int | Sequence[int]=…, backend: str | None=…, legend: bool=…, **kwargs) - changed:
method DataFrameGroupBy.idxmax(axis: Axis | None | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…) -> DataFrame → method DataFrameGroupBy.idxmax(skipna: bool=…, numeric_only: bool=…) -> DataFrame - changed:
method DataFrameGroupBy.idxmin(axis: Axis | None | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…) -> DataFrame → method DataFrameGroupBy.idxmin(skipna: bool=…, numeric_only: bool=…) -> DataFrame - changed:
method DataFrameGroupBy.skew(axis: Axis | None | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> DataFrame → method DataFrameGroupBy.skew(skipna: bool=…, numeric_only: bool=…, **kwargs) -> DataFrame - changed:
method DataFrameGroupBy.take(indices: TakeIndexer, axis: Axis | None | lib.NoDefault=…, **kwargs) -> DataFrame → method DataFrameGroupBy.take(indices: TakeIndexer, **kwargs) -> DataFrame - changed:
method DataFrameGroupBy.transform(func, *args, engine=…, engine_kwargs=…, **kwargs) → method DataFrameGroupBy.transform(func=…, *args, engine=…, engine_kwargs=…, **kwargs) - changed:
method SeriesGroupBy.aggregate(func=…, *args, engine=…, engine_kwargs=…, **kwargs) → method SeriesGroupBy.aggregate(func=…, *args, engine=…, engine_kwargs=…, **kwargs) -> Series | DataFrame - changed:
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) → method SeriesGroupBy.hist(by=…, ax=…, grid: bool=…, xlabelsize: int | None=…, xrot: float | None=…, ylabelsize: int | None=…, yrot: float | None=…, figsize: tuple[float, float] | None=…, bins: int | Sequence[int]=…, backend: str | None=…, legend: bool=…, **kwargs) - changed:
method SeriesGroupBy.idxmax(axis: Axis | lib.NoDefault=…, skipna: bool=…) -> Series → method SeriesGroupBy.idxmax(skipna: bool=…) -> Series - changed:
method SeriesGroupBy.idxmin(axis: Axis | lib.NoDefault=…, skipna: bool=…) -> Series → method SeriesGroupBy.idxmin(skipna: bool=…) -> Series - changed:
method SeriesGroupBy.skew(axis: Axis | lib.NoDefault=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series → method SeriesGroupBy.skew(skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series - changed:
method SeriesGroupBy.take(indices: TakeIndexer, axis: Axis | lib.NoDefault=…, **kwargs) -> Series → method SeriesGroupBy.take(indices: TakeIndexer, **kwargs) -> Series - changed:
variable AggScalar → variable AggScalar: TypeAlias - added:
constructor NamedAgg(column: Hashable, aggfunc: Callable[..., Any] | str, *args: Any, **kwargs: Any) -> None - added:
field NamedAgg.args: tuple[Any, ...] - added:
field NamedAgg.kwargs: dict[str, Any] - added:
method DataFrameGroupBy.describe(percentiles=…, include=…, exclude=…) -> DataFrame - added:
method DataFrameGroupBy.kurt(skipna: bool=…, numeric_only: bool=…, **kwargs) -> DataFrame - added:
method SeriesGroupBy.kurt(skipna: bool=…, numeric_only: bool=…, **kwargs) -> Series
- removed:
field BaseGroupBy.axis: AxisInt - removed:
property BaseGroupBy.grouper -> ops.BaseGrouper - removed:
property BaseGroupBy.groups -> dict[Hashable, np.ndarray] - changed:
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 → constructor GroupBy(obj: NDFrameT, keys: _KeysArgType | None=…, level: IndexLabel | None=…, grouper: ops.BaseGrouper | None=…, exclusions: frozenset[Hashable] | None=…, selection: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool=…, dropna: bool=…) -> None - changed:
function get_groupby(obj: NDFrame, by: _KeysArgType | None=…, axis: AxisInt=…, grouper: ops.BaseGrouper | None=…, group_keys: bool=…) -> GroupBy → function get_groupby(obj: NDFrame, by: _KeysArgType | None=…, grouper: ops.BaseGrouper | None=…, group_keys: bool=…) -> GroupBy - changed:
method BaseGroupBy.get_group(name, obj=…) -> DataFrame | Series → method BaseGroupBy.get_group(name) -> DataFrame | Series - changed:
method BaseGroupBy.pipe(func: Callable[..., T] | tuple[Callable[..., T], str], *args, **kwargs) -> T → method BaseGroupBy.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T - changed:
method GroupBy.cummax(axis: AxisInt | lib.NoDefault=…, numeric_only: bool=…, **kwargs) -> NDFrameT → method GroupBy.cummax(numeric_only: bool=…, skipna: bool=…, **kwargs) -> NDFrameT - changed:
method GroupBy.cummin(axis: AxisInt | lib.NoDefault=…, numeric_only: bool=…, **kwargs) -> NDFrameT → method GroupBy.cummin(numeric_only: bool=…, skipna: bool=…, **kwargs) -> NDFrameT - changed:
method GroupBy.cumprod(axis: Axis | lib.NoDefault=…, *args, **kwargs) -> NDFrameT → method GroupBy.cumprod(numeric_only: bool=…, skipna: bool=…, *args, **kwargs) -> NDFrameT - changed:
method GroupBy.cumsum(axis: Axis | lib.NoDefault=…, *args, **kwargs) -> NDFrameT → method GroupBy.cumsum(numeric_only: bool=…, skipna: bool=…, *args, **kwargs) -> NDFrameT - changed:
method GroupBy.diff(periods: int=…, axis: AxisInt | lib.NoDefault=…) -> NDFrameT → method GroupBy.diff(periods: int=…) -> NDFrameT - changed:
method GroupBy.ewm(*args, **kwargs) -> ExponentialMovingWindowGroupby → method GroupBy.ewm(com: float | None=…, span: float | None=…, halflife: float | str | Timedelta | None=…, alpha: float | None=…, min_periods: int | None=…, adjust: bool=…, ignore_na: bool=…, times: np.ndarray | Series | None=…, method: str=…) -> ExponentialMovingWindowGroupBy - changed:
method GroupBy.expanding(*args, **kwargs) -> ExpandingGroupby → method GroupBy.expanding(min_periods: int=…, method: str=…) -> ExpandingGroupBy - changed:
method GroupBy.max(numeric_only: bool=…, min_count: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.max(numeric_only: bool=…, min_count: int=…, skipna: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.mean(numeric_only: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.mean(numeric_only: bool=…, skipna: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.median(numeric_only: bool=…) -> NDFrameT → method GroupBy.median(numeric_only: bool=…, skipna: bool=…) -> NDFrameT - changed:
method GroupBy.min(numeric_only: bool=…, min_count: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.min(numeric_only: bool=…, min_count: int=…, skipna: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.pct_change(periods: int=…, fill_method: FillnaOptions | None | lib.NoDefault=…, limit: int | None | lib.NoDefault=…, freq=…, axis: Axis | lib.NoDefault=…) → method GroupBy.pct_change(periods: int=…, fill_method: None=…, freq=…) - changed:
method GroupBy.prod(numeric_only: bool=…, min_count: int=…) -> NDFrameT → method GroupBy.prod(numeric_only: bool=…, min_count: int=…, skipna: bool=…) -> NDFrameT - changed:
method GroupBy.quantile(q: float | AnyArrayLike=…, interpolation: str=…, numeric_only: bool=…) → method GroupBy.quantile(q: float | AnyArrayLike=…, interpolation: Literal['linear', 'lower', 'higher', 'nearest', 'midpoint']=…, numeric_only: bool=…) - changed:
method GroupBy.rank(method: str=…, ascending: bool=…, na_option: str=…, pct: bool=…, axis: AxisInt | lib.NoDefault=…) -> NDFrameT → method GroupBy.rank(method: RankMethod=…, ascending: bool=…, na_option: RankNaOption=…, pct: bool=…) -> NDFrameT - changed:
method GroupBy.resample(rule, *args, include_groups: bool=…, **kwargs) -> Resampler → method GroupBy.resample(rule, closed: Literal['right', 'left'] | None=…, label: Literal['right', 'left'] | None=…, convention: Literal['start', 'end', 's', 'e'] | None=…, on: Level | None=…, origin: str | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleTypes | None=…, group_keys: bool=…, *, include_groups: bool=…, **kwargs) -> Resampler - changed:
method GroupBy.rolling(*args, **kwargs) -> RollingGroupby → method GroupBy.rolling(window: int | datetime.timedelta | str | BaseOffset | BaseIndexer, min_periods: int | None=…, center: bool=…, win_type: str | None=…, on: str | None=…, closed: IntervalClosedType | None=…, method: str=…) -> RollingGroupBy - changed:
method GroupBy.sample(n: int | None=…, frac: float | None=…, replace: bool=…, weights: Sequence | Series | None=…, random_state: RandomState | None=…) → method GroupBy.sample(n: int | None=…, frac: float | None=…, replace: bool=…, weights: ListLike | None=…, random_state: RandomState | None=…) - changed:
method GroupBy.sem(ddof: int=…, numeric_only: bool=…) -> NDFrameT → method GroupBy.sem(ddof: int=…, numeric_only: bool=…, skipna: bool=…) -> NDFrameT - changed:
method GroupBy.shift(periods: int | Sequence[int]=…, freq=…, axis: Axis | lib.NoDefault=…, fill_value=…, suffix: str | None=…) → method GroupBy.shift(periods: int | Sequence[int]=…, freq=…, fill_value=…, suffix: str | None=…) - changed:
method GroupBy.std(ddof: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool=…) → method GroupBy.std(ddof: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool=…, skipna: bool=…) - changed:
method GroupBy.sum(numeric_only: bool=…, min_count: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) → method GroupBy.sum(numeric_only: bool=…, min_count: int=…, skipna: bool=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…) - changed:
method GroupBy.var(ddof: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool=…) → method GroupBy.var(ddof: int=…, engine: Literal['cython', 'numba'] | None=…, engine_kwargs: dict[str, bool] | None=…, numeric_only: bool=…, skipna: bool=…) - added:
property BaseGroupBy.groups -> dict[Hashable, Index]
- removed:
property Grouper.ax -> Index - removed:
property Grouper.grouper - removed:
property Grouper.groups - removed:
property Grouper.indexer - removed:
property Grouper.obj - removed:
property Grouping.group_arraylike -> ArrayLike - removed:
property Grouping.group_index -> Index - removed:
property Grouping.result_index -> Index - changed:
constructor Grouper(key=…, level=…, freq=…, axis: Axis | lib.NoDefault=…, sort: bool=…, dropna: bool=…) -> None → constructor Grouper(key=…, level=…, freq=…, sort: bool=…, dropna: bool=…) -> None - changed:
function get_grouper(obj: NDFrameT, key=…, axis: Axis=…, level=…, sort: bool=…, observed: bool=…, validate: bool=…, dropna: bool=…) -> tuple[ops.BaseGrouper, frozenset[Hashable], NDFrameT] → function get_grouper(obj: NDFrameT, key=…, level=…, sort: bool=…, observed: bool=…, validate: bool=…, dropna: bool=…) -> tuple[ops.BaseGrouper, frozenset[Hashable], NDFrameT] - changed:
method Grouping.groups() -> dict[Hashable, np.ndarray] → method Grouping.groups() -> dict[Hashable, Index] - added:
property Grouping.observed_grouping -> Grouping - added:
property Grouping.uniques -> ArrayLike
- changed:
function generate_numba_agg_func(func: Callable[..., Scalar], nopython: bool, nogil: bool, parallel: bool) -> Callable[[np.ndarray, np.ndarray, np.ndarray, np.ndarray, int, Any], np.ndarray] → function generate_numba_agg_func(func: Callable[..., Scalar], nogil: bool, parallel: bool) -> Callable[[np.ndarray, np.ndarray, np.ndarray, np.ndarray, int, Any], np.ndarray] - changed:
function generate_numba_transform_func(func: Callable[..., np.ndarray], nopython: bool, nogil: bool, parallel: bool) -> Callable[[np.ndarray, np.ndarray, np.ndarray, np.ndarray, int, Any], np.ndarray] → function generate_numba_transform_func(func: Callable[..., np.ndarray], nogil: bool, parallel: bool) -> Callable[[np.ndarray, np.ndarray, np.ndarray, np.ndarray, int, Any], np.ndarray] - changed:
function validate_udf(func: Callable) -> None → function validate_udf(func: Callable[..., Any]) -> None
- removed:
method BaseGrouper.group_info() -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp], int] - removed:
method BaseGrouper.group_keys_seq() - removed:
method BaseGrouper.result_index() -> Index - removed:
method BinGrouper.group_info() -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp], int] - removed:
method BinGrouper.reconstructed_codes() -> list[np.ndarray] - removed:
method BinGrouper.result_index() -> Index - removed:
property BaseGrouper.reconstructed_codes -> list[npt.NDArray[np.intp]] - removed:
property BaseGrouper.shape -> Shape - removed:
static method WrappedCythonOp.get_kind_from_how(how: str) -> str - changed:
constructor BaseGrouper(axis: Index, groupings: Sequence[grouper.Grouping], sort: bool=…, dropna: bool=…) -> None → constructor BaseGrouper(axis: Index, groupings: list[grouper.Grouping], sort: bool=…, dropna: bool=…) -> None - changed:
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 → constructor DataSplitter(data: NDFrameT, ngroups: int, *, sort_idx: npt.NDArray[np.intp], sorted_ids: npt.NDArray[np.intp]) -> None - changed:
constructor WrappedCythonOp(kind: str, how: str, has_dropped_na: bool) -> None → constructor WrappedCythonOp(how: str, has_dropped_na: bool) -> None - changed:
method BaseGrouper.agg_series(obj: Series, func: Callable, preserve_dtype: bool=…) -> ArrayLike → method BaseGrouper.agg_series(obj: Series, func: Callable) -> ArrayLike - changed:
method BaseGrouper.apply_groupwise(f: Callable, data: DataFrame | Series, axis: AxisInt=…) -> tuple[list, bool] → method BaseGrouper.apply_groupwise(f: Callable, data: DataFrame | Series) -> tuple[list, bool] - changed:
method BaseGrouper.get_group_levels() -> list[ArrayLike] → method BaseGrouper.get_group_levels() -> Generator[Index] - changed:
method BaseGrouper.get_iterator(data: NDFrameT, axis: AxisInt=…) -> Iterator[tuple[Hashable, NDFrameT]] → method BaseGrouper.get_iterator(data: NDFrameT) -> Iterator[tuple[Hashable, NDFrameT]] - changed:
method BaseGrouper.groups() -> dict[Hashable, np.ndarray] → method BaseGrouper.groups() -> dict[Hashable, Index] - changed:
method BinGrouper.get_iterator(data: NDFrame, axis: AxisInt=…) → method BinGrouper.get_iterator(data: NDFrame) - added:
method BaseGrouper.result_index_and_ids() -> tuple[Index, npt.NDArray[np.intp]] - added:
method BinGrouper.codes() -> list[npt.NDArray[np.intp]] - added:
method BinGrouper.result_index_and_ids() - added:
property BaseGrouper.ids -> npt.NDArray[np.intp] - added:
property BaseGrouper.observed_grouper -> BaseGrouper - added:
property BaseGrouper.result_index -> Index - added:
property BinGrouper.observed_grouper -> BinGrouper
- added:
export getitem_returns_view
- removed:
class GroupbyIndexer(BaseIndexer) - removed:
constructor GroupbyIndexer(index_array: np.ndarray | None=…, window_size: int | BaseIndexer=…, groupby_indices: dict | None=…, window_indexer: type[BaseIndexer]=…, indexer_kwargs: dict | None=…, **kwargs) -> None - removed:
method GroupbyIndexer.get_window_bounds(num_values: int=…, min_periods: int | None=…, center: bool | None=…, closed: str | None=…, step: int | None=…) -> tuple[np.ndarray, np.ndarray] - removed:
variable get_window_bounds_doc - added:
class GroupByIndexer(BaseIndexer) - added:
constructor GroupByIndexer(index_array: np.ndarray | None=…, window_size: int | BaseIndexer=…, groupby_indices: dict[Hashable, np.ndarray] | None=…, window_indexer: type[BaseIndexer]=…, indexer_kwargs: dict[str, Any] | None=…, **kwargs) -> None - added:
method GroupByIndexer.get_window_bounds(num_values: int=…, min_periods: int | None=…, center: bool | None=…, closed: str | None=…, step: int | None=…) -> tuple[np.ndarray, np.ndarray]
- changed:
function unpack_tuple_and_ellipses(item: tuple) → function unpack_tuple_and_ellipses(item: tuple[Any, ...]) - added:
function getitem_returns_view(arr, key) -> bool
- removed:
property TimedeltaProperties.components - changed:
method ArrowTemporalProperties.to_pydatetime() → method ArrowTemporalProperties.to_pydatetime() -> Series - changed:
method DatetimeProperties.to_pydatetime() -> np.ndarray → method DatetimeProperties.to_pydatetime() -> Series - added:
property DatetimeProperties.dayofweek -> Series - added:
property DatetimeProperties.dayofyear -> Series - added:
property DatetimeProperties.daysinmonth -> Series - added:
property DatetimeProperties.weekday -> Series - added:
property PeriodProperties.dayofweek - added:
property PeriodProperties.dayofyear - added:
property PeriodProperties.daysinmonth - added:
property PeriodProperties.weekday -> Series - added:
property TimedeltaProperties.components -> DataFrame
- changed:
function get_objs_combined_axis(objs, intersect: bool=…, axis: Axis=…, sort: bool=…, copy: bool=…) -> Index → function get_objs_combined_axis(objs, intersect: bool=…, axis: Axis=…, sort: bool | lib.NoDefault=…) -> tuple[Index, bool] - changed:
function union_indexes(indexes, sort: bool | None=…) -> Index → function union_indexes(indexes, sort: bool | lib.NoDefault=…) -> tuple[Index, bool] - added:
export maybe_sequence_to_range
- removed:
method Index.format(name: bool=…, formatter: Callable | None=…, na_rep: str_t=…) -> list[str_t] - removed:
method Index.holds_integer() -> bool - removed:
method Index.is_boolean() -> bool - removed:
method Index.is_categorical() -> bool - removed:
method Index.is_floating() -> bool - removed:
method Index.is_integer() -> bool - removed:
method Index.is_interval() -> bool - removed:
method Index.is_numeric() -> bool - removed:
method Index.is_object() -> bool - removed:
method Index.sort(*args, **kwargs) - changed:
method Index.all(*args, **kwargs) → method Index.all(*args: Any, **kwargs: Any) -> Any - changed:
method Index.any(*args, **kwargs) → method Index.any(*args: Any, **kwargs: Any) -> Any - changed:
method Index.argmax(axis=…, skipna: bool=…, *args, **kwargs) -> int → method Index.argmax(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> int - changed:
method Index.argmin(axis=…, skipna: bool=…, *args, **kwargs) -> int → method Index.argmin(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> int - changed:
method Index.argsort(*args, **kwargs) -> npt.NDArray[np.intp] → method Index.argsort(*args: Any, **kwargs: Any) -> npt.NDArray[np.intp] - changed:
method Index.asof(label) → method Index.asof(label: Hashable) -> Hashable - changed:
method Index.astype(dtype, copy: bool=…) → method Index.astype(dtype: Dtype, copy: bool=…) -> Index - changed:
method Index.delete(loc) -> Self → method Index.delete(loc: int | np.integer | list[int] | npt.NDArray[np.integer]) -> Self - changed:
method Index.difference(other, sort=…) → method Index.difference(other: Axes, sort: bool | None=…) -> Index - changed:
method Index.droplevel(level: IndexLabel=…) → method Index.droplevel(level: IndexLabel=…) -> Index - changed:
method Index.fillna(value=…, downcast=…) → method Index.fillna(value: object) -> Index - changed:
method Index.get_indexer(target, method: ReindexMethod | None=…, limit: int | None=…, tolerance=…) -> npt.NDArray[np.intp] → method Index.get_indexer(target: Axes, method: ReindexMethod | None=…, limit: int | None=…, tolerance: Any=…) -> npt.NDArray[np.intp] - changed:
method Index.get_indexer_for(target) -> npt.NDArray[np.intp] → method Index.get_indexer_for(target: Axes) -> npt.NDArray[np.intp] - changed:
method Index.get_indexer_non_unique(target) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]] → method Index.get_indexer_non_unique(target: Axes) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]] - changed:
method Index.get_loc(key) → method Index.get_loc(key: Hashable) -> int | slice | npt.NDArray[np.bool_] - changed:
method Index.get_slice_bound(label, side: Literal['left', 'right']) -> int → method Index.get_slice_bound(label: Hashable, side: Literal['left', 'right']) -> int - changed:
method Index.groupby(values) -> PrettyDict[Hashable, np.ndarray] → method Index.groupby(values: Axes) -> PrettyDict[Hashable, Index] - changed:
method Index.identical(other) -> bool → method Index.identical(other: Index) -> bool - changed:
method Index.insert(loc: int, item) -> Index → method Index.insert(loc: int, item: Hashable) -> Index - changed:
method Index.intersection(other, sort: bool=…) → method Index.intersection(other: Axes, sort: bool=…) -> Index - changed:
method Index.is_(other) -> bool → method Index.is_(other: Index) -> bool - changed:
method Index.isin(values, level=…) -> npt.NDArray[np.bool_] → method Index.isin(values: Axes | set, level: str_t | int | None=…) -> npt.NDArray[np.bool_] - changed:
method Index.map(mapper, na_action: Literal['ignore'] | None=…) → method Index.map(mapper: Callable | dict | Series, na_action: Literal['ignore'] | None=…) -> Index - changed:
method Index.max(axis=…, skipna: bool=…, *args, **kwargs) → method Index.max(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> object - changed:
method Index.min(axis=…, skipna: bool=…, *args, **kwargs) → method Index.min(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> object - changed:
method Index.putmask(mask, value) -> Index → method Index.putmask(mask: npt.NDArray[np.bool_], value: object) -> Index - changed:
method Index.reindex(target, method: ReindexMethod | None=…, level=…, limit: int | None=…, tolerance: float | None=…) -> tuple[Index, npt.NDArray[np.intp] | None] → method Index.reindex(target: Axes, method: ReindexMethod | None=…, level: Level | None=…, limit: int | None=…, tolerance: float | None=…) -> tuple[Index, npt.NDArray[np.intp] | None] - changed:
method Index.rename(name, *, inplace: Literal[False]=…) -> Self | (name, *, inplace: Literal[True]) -> None → method Index.rename(name: Hashable | Sequence[Hashable], *, inplace: Literal[False]=…) -> Self | (name: Hashable | Sequence[Hashable], *, inplace: Literal[True]) -> None - changed:
method Index.repeat(repeats, axis: None=…) -> Self → method Index.repeat(repeats: int | Sequence[int], axis: None=…) -> Self - changed:
method Index.set_names(names, *, level=…, inplace: Literal[False]=…) -> Self | (names, *, level=…, inplace: Literal[True]) -> None | (names, *, level=…, inplace: bool=…) -> Self | None → method Index.set_names(names: Hashable | Sequence[Hashable] | dict[Hashable, Hashable], *, level: Hashable | Sequence[Hashable] | None=…, inplace: Literal[False]=…) -> Self | (names: Hashable | Sequence[Hashable] | dict[Hashable, Hashable], *, level: Hashable | Sequence[Hashable] | None=…, inplace: Literal[True]) -> None | (names: Hashable | Sequence[Hashable] | dict[Hashable, Hashable], *, level… - changed:
method Index.shift(periods: int=…, freq=…) → method Index.shift(periods: int=…, freq: Frequency | None=…) -> Self - changed:
method Index.slice_locs(start=…, end=…, step=…) -> tuple[int, int] → method Index.slice_locs(start: SliceType=…, end: SliceType=…, step: int | None=…) -> tuple[int, int] - changed:
method Index.sortlevel(level=…, ascending: bool | list[bool]=…, sort_remaining=…, na_position: NaPosition=…) → method Index.sortlevel(level: Level | None=…, ascending: bool | list[bool]=…, sort_remaining: bool | None=…, na_position: NaPosition=…) -> tuple[Self, np.ndarray] - changed:
method Index.symmetric_difference(other, result_name=…, sort=…) → method Index.symmetric_difference(other: Axes, result_name: abc.Hashable | None=…, sort: bool | None=…) -> Index - changed:
method Index.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> Self → method Index.take(indices: Sequence[int] | np.ndarray, axis: Axis=…, allow_fill: bool | lib.NoDefault=…, fill_value: object=…, **kwargs: Any) -> Self - changed:
method Index.to_series(index=…, name: Hashable | None=…) -> Series → method Index.to_series(index: Axes | None=…, name: Hashable | None=…) -> Series - changed:
method Index.union(other, sort=…) → method Index.union(other: Axes, sort: bool | None=…) -> Index - changed:
method Index.view(cls=…) → method Index.view(cls: npt.DTypeLike | None=…) -> Index - changed:
method Index.where(cond, other=…) -> Index → method Index.where(cond: np.ndarray, other: object=…) -> Index - added:
method Index.replace(to_replace: Any=…, value: Any=…, regex: Any=…) -> Index
- removed:
field CategoricalIndex.categories: Index - removed:
field CategoricalIndex.codes: np.ndarray - removed:
field CategoricalIndex.ordered: bool | None - changed:
method CategoricalIndex.map(mapper, na_action: Literal['ignore'] | None=…) → method CategoricalIndex.map(mapper: Callable[..., Any] | dict[Hashable, Any] | Series, na_action: Literal['ignore'] | None=…) -> Index - changed:
method CategoricalIndex.reindex(target, method=…, level=…, limit: int | None=…, tolerance=…) -> tuple[Index, npt.NDArray[np.intp] | None] → method CategoricalIndex.reindex(target: Axes, method: ReindexMethod | None=…, level: Level | None=…, limit: int | None=…, tolerance: float | None=…) -> tuple[Index, npt.NDArray[np.intp] | None] - added:
method CategoricalIndex.add_categories(new_categories: Any) -> Self - added:
method CategoricalIndex.as_ordered() -> Self - added:
method CategoricalIndex.as_unordered() -> Self - added:
method CategoricalIndex.max(*, skipna: bool=…, **kwargs: Any) -> Any - added:
method CategoricalIndex.min(*, skipna: bool=…, **kwargs: Any) -> Any - added:
method CategoricalIndex.remove_categories(removals: Any) -> Self - added:
method CategoricalIndex.remove_unused_categories() -> Self - added:
method CategoricalIndex.rename_categories(new_categories: Any) -> Self - added:
method CategoricalIndex.reorder_categories(new_categories: Axes, ordered: bool | None=…) -> Self - added:
method CategoricalIndex.set_categories(new_categories: Axes, ordered: bool | None=…, rename: bool=…) -> Self - added:
property CategoricalIndex.categories -> Index - added:
property CategoricalIndex.codes -> np.ndarray - added:
property CategoricalIndex.ordered -> bool | None
- removed:
method DatetimeIndexOpsMixin.format(name: bool=…, formatter: Callable | None=…, na_rep: str=…, date_format: str | None=…) -> list[str] - removed:
property DatetimeTimedeltaMixin.unit -> str - changed:
method DatetimeTimedeltaMixin.as_unit(unit: str) -> Self → method DatetimeTimedeltaMixin.as_unit(unit: TimeUnit) -> Self - changed:
method DatetimeTimedeltaMixin.inferred_freq() -> str | None → method DatetimeTimedeltaMixin.inferred_freq() -> str | BaseOffset | None - changed:
method DatetimeTimedeltaMixin.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> Self → method DatetimeTimedeltaMixin.take(indices, axis: Axis=…, allow_fill: bool | lib.NoDefault=…, fill_value=…, **kwargs) -> Self - added:
method DatetimeTimedeltaMixin.astype(dtype, copy: bool=…) - added:
method DatetimeTimedeltaMixin.copy(name: Hashable | None=…, deep: bool=…) -> Self - added:
method DatetimeTimedeltaMixin.factorize(sort: bool=…, use_na_sentinel: bool=…) - added:
method DatetimeTimedeltaMixin.putmask(mask, value) -> Index - added:
property DatetimeTimedeltaMixin.freq -> BaseOffset | None - added:
property DatetimeTimedeltaMixin.unit -> TimeUnit
- removed:
field DatetimeIndex.tz: dt.tzinfo | None - changed:
function date_range(start=…, end=…, periods=…, freq=…, tz=…, normalize: bool=…, name: Hashable | None=…, inclusive: IntervalClosedType=…, *, unit: str | None=…, **kwargs) -> DatetimeIndex → function date_range(start=…, end=…, periods=…, freq=…, tz=…, normalize: bool=…, name: Hashable | None=…, inclusive: IntervalClosedType=…, *, unit: TimeUnit | None=…, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…, **kwargs) -> DatetimeIndex - added:
method DatetimeIndex.ceil(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
method DatetimeIndex.day_name(locale=…) -> Index - added:
method DatetimeIndex.floor(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
method DatetimeIndex.is_normalized() -> bool - added:
method DatetimeIndex.month_name(locale=…) -> Index - added:
method DatetimeIndex.normalize() -> Self - added:
method DatetimeIndex.round(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
method DatetimeIndex.std(axis=…, dtype=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) -> Timedelta - added:
method DatetimeIndex.to_pydatetime() -> npt.NDArray[np.object_] - added:
property DatetimeIndex.date -> npt.NDArray[np.object_] - added:
property DatetimeIndex.day -> Index - added:
property DatetimeIndex.day_of_week -> Index - added:
property DatetimeIndex.day_of_year -> Index - added:
property DatetimeIndex.dayofweek -> Index - added:
property DatetimeIndex.dayofyear -> Index - added:
property DatetimeIndex.days_in_month -> Index - added:
property DatetimeIndex.daysinmonth -> Index - added:
property DatetimeIndex.hour -> Index - added:
property DatetimeIndex.is_leap_year -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.is_month_end -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.is_month_start -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.is_quarter_end -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.is_quarter_start -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.is_year_end -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.is_year_start -> npt.NDArray[np.bool_] - added:
property DatetimeIndex.microsecond -> Index - added:
property DatetimeIndex.minute -> Index - added:
property DatetimeIndex.month -> Index - added:
property DatetimeIndex.nanosecond -> Index - added:
property DatetimeIndex.quarter -> Index - added:
property DatetimeIndex.second -> Index - added:
property DatetimeIndex.time -> npt.NDArray[np.object_] - added:
property DatetimeIndex.timetz -> npt.NDArray[np.object_] - added:
property DatetimeIndex.tz -> dt.tzinfo | None - added:
property DatetimeIndex.tzinfo -> dt.tzinfo | None - added:
property DatetimeIndex.weekday -> Index - added:
property DatetimeIndex.year -> Index
- changed:
method FrozenList.difference(other) -> FrozenList → method FrozenList.difference(other: Iterable) -> FrozenList - changed:
method FrozenList.union(other) -> FrozenList → method FrozenList.union(other: list | tuple) -> FrozenList
- removed:
field IntervalIndex.closed: IntervalClosedType - removed:
field IntervalIndex.closed_left: bool - removed:
field IntervalIndex.closed_right: bool - removed:
field IntervalIndex.is_non_overlapping_monotonic: bool - removed:
field IntervalIndex.open_left: bool - removed:
field IntervalIndex.open_right: bool - changed:
method IntervalIndex.get_indexer_non_unique(target: Index) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]] → method IntervalIndex.get_indexer_non_unique(target: Axes) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]] - added:
method IntervalIndex.closed() -> IntervalClosedType - added:
method IntervalIndex.contains(other) -> npt.NDArray[np.bool_] - added:
method IntervalIndex.is_non_overlapping_monotonic() -> bool - added:
method IntervalIndex.overlaps(other: Interval) -> npt.NDArray[np.bool_] - added:
method IntervalIndex.set_closed(closed: IntervalClosedType) -> Self - added:
method IntervalIndex.to_tuples(na_tuple: bool=…) -> Index - added:
property IntervalIndex.closed_left -> bool - added:
property IntervalIndex.closed_right -> bool - added:
property IntervalIndex.is_empty -> npt.NDArray[np.bool_] - added:
property IntervalIndex.open_left -> bool - added:
property IntervalIndex.open_right -> bool
- removed:
class MultiIndexUIntEngine(libindex.BaseMultiIndexCodesEngine, libindex.UInt64Engine) - removed:
method MultiIndex.format(name: bool | None=…, formatter: Callable | None=…, na_rep: str | None=…, names: bool=…, space: int=…, sparsify=…, adjoin: bool=…) -> list - changed:
method MultiIndex.argsort(*args, na_position: str=…, **kwargs) -> npt.NDArray[np.intp] → method MultiIndex.argsort(*args, na_position: NaPosition=…, **kwargs) -> npt.NDArray[np.intp] - changed:
method MultiIndex.fillna(value=…, downcast=…) → method MultiIndex.fillna(value) - changed:
method MultiIndex.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> MultiIndex → method MultiIndex.take(indices, axis: Axis=…, allow_fill: bool | lib.NoDefault=…, fill_value=…, **kwargs) -> MultiIndex - added:
class MultiIndexUInt16Engine(libindex.BaseMultiIndexCodesEngine, libindex.UInt16Engine) - added:
class MultiIndexUInt32Engine(libindex.BaseMultiIndexCodesEngine, libindex.UInt32Engine) - added:
class MultiIndexUInt64Engine(libindex.BaseMultiIndexCodesEngine, libindex.UInt64Engine) - added:
class MultiIndexUInt8Engine(libindex.BaseMultiIndexCodesEngine, libindex.UInt8Engine) - added:
function cartesian_product(X: list[np.ndarray]) -> list[np.ndarray]
- added:
field PeriodIndex.week - added:
method PeriodIndex.strftime(date_format: str) -> Index - added:
property PeriodIndex.day -> Index - added:
property PeriodIndex.day_of_week -> Index - added:
property PeriodIndex.day_of_year -> Index - added:
property PeriodIndex.dayofweek -> Index - added:
property PeriodIndex.dayofyear -> Index - added:
property PeriodIndex.days_in_month -> Index - added:
property PeriodIndex.daysinmonth -> Index - added:
property PeriodIndex.end_time -> DatetimeIndex - added:
property PeriodIndex.is_leap_year -> npt.NDArray[np.bool_] - added:
property PeriodIndex.month -> Index - added:
property PeriodIndex.quarter -> Index - added:
property PeriodIndex.qyear -> Index - added:
property PeriodIndex.start_time -> DatetimeIndex - added:
property PeriodIndex.weekday -> Index - added:
property PeriodIndex.weekofyear -> Index - added:
property PeriodIndex.year -> Index
- changed:
method RangeIndex.all(*args, **kwargs) -> bool → method RangeIndex.all(*args: Any, **kwargs: Any) -> bool - changed:
method RangeIndex.any(*args, **kwargs) -> bool → method RangeIndex.any(*args: Any, **kwargs: Any) -> bool - changed:
method RangeIndex.argsort(*args, **kwargs) -> npt.NDArray[np.intp] → method RangeIndex.argsort(*args: Any, **kwargs: Any) -> npt.NDArray[np.intp] - changed:
method RangeIndex.delete(loc) -> Index → method RangeIndex.delete(loc: int | np.integer | list[int] | npt.NDArray[np.integer]) -> Index - changed:
method RangeIndex.get_loc(key) -> int → method RangeIndex.get_loc(key: int) -> int - changed:
method RangeIndex.insert(loc: int, item) -> Index → method RangeIndex.insert(loc: int, item: Hashable) -> Index - changed:
method RangeIndex.max(axis=…, skipna: bool=…, *args, **kwargs) -> int → method RangeIndex.max(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> int | float - changed:
method RangeIndex.min(axis=…, skipna: bool=…, *args, **kwargs) -> int → method RangeIndex.min(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> int | float - changed:
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… → 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] | (*, return_indexer: bool=…, ascending: bool=…, na_position: NaPosition=…, key: Callable | None=…) -> Self | tuple[Self… - changed:
method RangeIndex.symmetric_difference(other, result_name: Hashable | None=…, sort=…) → method RangeIndex.symmetric_difference(other: Axes, result_name: Hashable | None=…, sort: bool | None=…) -> Index - changed:
method RangeIndex.take(indices, axis: Axis=…, allow_fill: bool=…, fill_value=…, **kwargs) -> Index → method RangeIndex.take(indices: Sequence[int] | np.ndarray, axis: Axis=…, allow_fill: bool | lib.NoDefault=…, fill_value: object=…, **kwargs: Any) -> Self | Index - changed:
static method RangeIndex.from_range(data: range, name=…, dtype: Dtype | None=…) -> Self → static method RangeIndex.from_range(data: range, name: Hashable | None=…, dtype: Dtype | None=…) -> Self - added:
function min_fitting_element(start: int, step: int, lower_limit: int) -> int - added:
method RangeIndex.argmax(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> int - added:
method RangeIndex.argmin(axis: AxisInt | None=…, skipna: bool=…, *args: Any, **kwargs: Any) -> int - added:
method RangeIndex.round(decimals: int=…) -> Self | Index - added:
method RangeIndex.searchsorted(value: ScalarLike_co, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> np.intp | (value: npt.ArrayLike | ExtensionArray, side: Literal['left', 'right']=…, sorter: NumpySorter=…) -> npt.NDArray[np.intp] - added:
method RangeIndex.value_counts(normalize: bool=…, sort: bool=…, ascending: bool=…, bins: int | None=…, dropna: bool=…) -> Series
- changed:
function timedelta_range(start=…, end=…, periods: int | None=…, freq=…, name=…, closed=…, *, unit: str | None=…) -> TimedeltaIndex → function timedelta_range(start=…, end=…, periods: int | None=…, freq=…, name=…, closed=…, *, unit: TimeUnit | None=…) -> TimedeltaIndex - added:
method TimedeltaIndex.ceil(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
method TimedeltaIndex.floor(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
method TimedeltaIndex.median(*, axis: AxisInt | None=…, skipna: bool=…, **kwargs) -> Timedelta | NaTType - added:
method TimedeltaIndex.round(freq, ambiguous: TimeAmbiguous=…, nonexistent: TimeNonexistent=…) -> Self - added:
method TimedeltaIndex.std(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, ddof: int=…, keepdims: bool=…, skipna: bool=…) -> Timedelta | NaTType - added:
method TimedeltaIndex.sum(*, axis: AxisInt | None=…, dtype: NpDtype | None=…, out=…, keepdims: bool=…, initial=…, skipna: bool=…, min_count: int=…) -> Timedelta | NaTType - added:
method TimedeltaIndex.to_pytimedelta() -> npt.NDArray[np.object_] - added:
method TimedeltaIndex.total_seconds() -> Index - added:
property TimedeltaIndex.components -> DataFrame - added:
property TimedeltaIndex.days -> Index - added:
property TimedeltaIndex.microseconds -> Index - added:
property TimedeltaIndex.nanoseconds -> Index - added:
property TimedeltaIndex.seconds -> Index
- removed:
variable T - changed:
function convert_from_missing_indexer_tuple(indexer, axes) → function convert_from_missing_indexer_tuple(indexer: tuple, axes: list[Index]) -> tuple - added:
function infer_and_maybe_downcast(orig: ExtensionArray, new_arr, *, warn_if_cast: bool=…) -> ArrayLike - added:
function maybe_warn_multiindex_expansion(index: Index, key, target: str, hint: str) -> None
- changed:
function set_nulls(data: np.ndarray | pd.Series, col: Column, validity: tuple[Buffer, tuple[DtypeKind, int, str, str]] | None, allow_modify_inplace: bool=…) → function set_nulls(data: np.ndarray, col: Column, validity: tuple[Buffer, tuple[DtypeKind, int, str, str]] | None, allow_modify_inplace: bool=…) -> np.ndarray | (data: pd.Series, col: Column, validity: tuple[Buffer, tuple[DtypeKind, int, str, str]] | None, allow_modify_inplace: bool=…) -> pd.Series | (data: np.ndarray | pd.Series, col: Column, validity: tuple[Buffer, tuple[DtypeKind, int, str, st…
- removed:
export ArrayManager - removed:
export DataManager - removed:
export SingleArrayManager - removed:
export SingleDataManager
- changed:
function make_block(values, placement, klass=…, ndim=…, dtype: Dtype | None=…) -> Block → function make_block(values: ArrayLike, placement: BlockPlacement | np.ndarray, klass: type[Block] | None=…, ndim: int | None=…, dtype: Dtype | None=…) -> Block - changed:
function maybe_infer_ndim(values, placement: BlockPlacement, ndim: int | None) -> int → function maybe_infer_ndim(values: ArrayLike, placement: BlockPlacement, ndim: int | None) -> int
- removed:
class ArrayManager(BaseArrayManager) - removed:
class BaseArrayManager(DataManager) - removed:
class NullArrayProxy - removed:
class SingleArrayManager(BaseArrayManager, SingleDataManager) - removed:
constructor ArrayManager(arrays: list[np.ndarray | ExtensionArray], axes: list[Index], verify_integrity: bool=…) -> None - removed:
constructor BaseArrayManager(arrays: list[np.ndarray | ExtensionArray], axes: list[Index], verify_integrity: bool=…) -> None - removed:
constructor NullArrayProxy(n: int) -> None - removed:
constructor SingleArrayManager(arrays: list[np.ndarray | ExtensionArray], axes: list[Index], verify_integrity: bool=…) -> None - removed:
field BaseArrayManager.arrays: list[np.ndarray | ExtensionArray] - removed:
field NullArrayProxy.ndim - removed:
field SingleArrayManager.arrays: list[np.ndarray | ExtensionArray] - removed:
function concat_arrays(to_concat: list) -> ArrayLike - removed:
method ArrayManager.as_array(dtype=…, copy: bool=…, na_value: object=…) -> np.ndarray - removed:
method ArrayManager.column_setitem(loc: int, idx: int | slice | np.ndarray, value, inplace_only: bool=…) -> None - removed:
method ArrayManager.fast_xs(loc: int) -> SingleArrayManager - removed:
method ArrayManager.get_slice(slobj: slice, axis: AxisInt=…) -> ArrayManager - removed:
method ArrayManager.grouped_reduce(func: Callable) -> Self - removed:
method ArrayManager.idelete(indexer) -> ArrayManager - removed:
method ArrayManager.iget(i: int) -> SingleArrayManager - removed:
method ArrayManager.iget_values(i: int) -> ArrayLike - removed:
method ArrayManager.insert(loc: int, item: Hashable, value: ArrayLike, refs=…) -> None - removed:
method ArrayManager.iset(loc: int | slice | np.ndarray, value: ArrayLike, inplace: bool=…, refs=…) -> None - removed:
method ArrayManager.operate_blockwise(other: ArrayManager, array_op) -> ArrayManager - removed:
method ArrayManager.quantile(*, qs: Index, transposed: bool=…, interpolation: QuantileInterpolation=…) -> ArrayManager - removed:
method ArrayManager.reduce(func: Callable) -> Self - removed:
method ArrayManager.unstack(unstacker, fill_value) -> ArrayManager - removed:
method BaseArrayManager.add_references(mgr: BaseArrayManager) -> None - removed:
method BaseArrayManager.apply(f, align_keys: list[str] | None=…, **kwargs) -> Self - removed:
method BaseArrayManager.apply_with_block(f, align_keys=…, **kwargs) -> Self - removed:
method BaseArrayManager.astype(dtype, copy: bool | None=…, errors: str=…) -> Self - removed:
method BaseArrayManager.convert(copy: bool | None) -> Self - removed:
method BaseArrayManager.copy(deep: bool | Literal['all'] | None=…) -> Self - removed:
method BaseArrayManager.diff(n: int) -> Self - removed:
method BaseArrayManager.get_bool_data(copy: bool=…) -> Self - removed:
method BaseArrayManager.get_dtypes() -> npt.NDArray[np.object_] - removed:
method BaseArrayManager.get_numeric_data(copy: bool=…) -> Self - removed:
method BaseArrayManager.get_values_for_csv(*, float_format, date_format, decimal, na_rep: str=…, quoting=…) -> Self - removed:
method BaseArrayManager.make_empty(axes=…) -> Self - removed:
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 - removed:
method BaseArrayManager.set_axis(axis: AxisInt, new_labels: Index) -> None - removed:
method BaseArrayManager.setitem(indexer, value, warn: bool=…) -> Self - removed:
method BaseArrayManager.take(indexer: npt.NDArray[np.intp], axis: AxisInt=…, verify: bool=…) -> Self - removed:
method NullArrayProxy.to_array(dtype: DtypeObj) -> ArrayLike - removed:
method SingleArrayManager.apply(func, **kwargs) -> Self - removed:
method SingleArrayManager.array_values() - removed:
method SingleArrayManager.external_values() - removed:
method SingleArrayManager.fast_xs(loc: int) -> SingleArrayManager - removed:
method SingleArrayManager.get_rows_with_mask(indexer: npt.NDArray[np.bool_]) -> SingleArrayManager - removed:
method SingleArrayManager.get_slice(slobj: slice, axis: AxisInt=…) -> SingleArrayManager - removed:
method SingleArrayManager.idelete(indexer) -> SingleArrayManager - removed:
method SingleArrayManager.internal_values() - removed:
method SingleArrayManager.make_empty(axes=…) -> Self - removed:
method SingleArrayManager.set_values(values: ArrayLike) -> None - removed:
method SingleArrayManager.setitem(indexer, value, warn: bool=…) -> SingleArrayManager - removed:
method SingleArrayManager.to_2d_mgr(columns: Index) -> ArrayManager - removed:
property ArrayManager.column_arrays -> list[ArrayLike] - removed:
property ArrayManager.ndim -> Literal[2] - removed:
property BaseArrayManager.any_extension_types -> bool - removed:
property BaseArrayManager.axes -> list[Index] - removed:
property BaseArrayManager.is_single_block -> bool - removed:
property BaseArrayManager.is_view -> bool - removed:
property BaseArrayManager.items -> Index - removed:
property BaseArrayManager.shape_proper -> tuple[int, ...] - removed:
property NullArrayProxy.shape -> tuple[int] - removed:
property SingleArrayManager.axes -> list[Index] - removed:
property SingleArrayManager.dtype - removed:
property SingleArrayManager.index -> Index - removed:
property SingleArrayManager.is_single_block -> bool - removed:
property SingleArrayManager.ndim -> Literal[1] - removed:
static method ArrayManager.concat_horizontal(mgrs: list[Self], axes: list[Index]) -> Self - removed:
static method ArrayManager.concat_vertical(mgrs: list[Self], axes: list[Index]) -> Self - removed:
static method SingleArrayManager.from_array(array, index) -> SingleArrayManager
- removed:
class DataManager(PandasObject) - removed:
class SingleDataManager(DataManager) - removed:
field DataManager.axes: list[Index] - removed:
function ensure_np_dtype(dtype: DtypeObj) -> np.dtype - removed:
function interleaved_dtype(dtypes: list[DtypeObj]) -> DtypeObj | None - removed:
method DataManager.apply(f, align_keys: list[str] | None=…, **kwargs) -> Self - removed:
method DataManager.apply_with_block(f, align_keys: list[str] | None=…, **kwargs) -> Self - removed:
method DataManager.consolidate() -> Self - removed:
method DataManager.equals(other: object) -> bool - removed:
method DataManager.fillna(value, limit: int | None, inplace: bool, downcast) -> Self - removed:
method DataManager.interpolate(inplace: bool, **kwargs) -> Self - removed:
method DataManager.is_consolidated() -> bool - removed:
method DataManager.isna(func) -> Self - removed:
method DataManager.pad_or_backfill(inplace: bool, **kwargs) -> Self - removed:
method DataManager.putmask(mask, new, align: bool=…, warn: bool=…) -> Self - removed:
method DataManager.reindex_axis(new_index: Index, axis: AxisInt, fill_value=…, only_slice: bool=…) -> Self - removed:
method DataManager.reindex_indexer(new_axis, indexer, axis: AxisInt, fill_value=…, allow_dups: bool=…, copy: bool=…, only_slice: bool=…) -> Self - removed:
method DataManager.replace(to_replace, value, inplace: bool) -> Self - removed:
method DataManager.replace_list(src_list: list[Any], dest_list: list[Any], inplace: bool=…, regex: bool=…) -> Self - removed:
method DataManager.replace_regex(**kwargs) -> Self - removed:
method DataManager.round(decimals: int, using_cow: bool=…) -> Self - removed:
method DataManager.shift(periods: int, fill_value) -> Self - removed:
method DataManager.where(other, cond, align: bool) -> Self - removed:
method SingleDataManager.grouped_reduce(func) - removed:
method SingleDataManager.setitem_inplace(indexer, value, warn: bool=…) -> None - removed:
property DataManager.items -> Index - removed:
property DataManager.ndim -> int - removed:
property DataManager.shape -> Shape - removed:
property SingleDataManager.array -> ArrayLike - removed:
property SingleDataManager.ndim -> Literal[1] - removed:
static method SingleDataManager.from_array(arr: ArrayLike, index: Index)
- removed:
class DatetimeTZBlock(DatetimeLikeBlock) - removed:
class NumericBlock(NumpyBlock) - removed:
class ObjectBlock(NumpyBlock) - removed:
field DatetimeTZBlock.values: DatetimeArray - removed:
function maybe_split(meth: F) -> F - removed:
variable COW_WARNING_GENERAL_MSG - removed:
variable COW_WARNING_SETITEM_MSG - changed:
field Block.__init__: Callable → field Block.__init__: Callable[..., None] - changed:
function extract_pandas_array(values: ArrayLike, dtype: DtypeObj | None, ndim: int) -> tuple[ArrayLike, DtypeObj | None] → function extract_pandas_array(values: ArrayLike, dtype: DtypeObj | None, ndim: int | None) -> tuple[ArrayLike, DtypeObj | None] - changed:
function new_block_2d(values: ArrayLike, placement: BlockPlacement, refs: BlockValuesRefs | None=…) → function new_block_2d(values: ArrayLike, placement: BlockPlacement, refs: BlockValuesRefs | None=…) -> Block - changed:
method Block.astype(dtype: DtypeObj, copy: bool=…, errors: IgnoreRaise=…, using_cow: bool=…, squeeze: bool=…) -> Block → method Block.astype(dtype: DtypeObj, errors: IgnoreRaise=…, squeeze: bool=…) -> Block - changed:
method Block.coerce_to_target_dtype(other, warn_on_upcast: bool=…, using_cow: bool=…) -> Block → method Block.coerce_to_target_dtype(other, raise_on_upcast: bool) -> Block - changed:
method Block.convert(*, copy: bool=…, using_cow: bool=…, convert_string: bool=…) -> list[Block] → method Block.convert() -> list[Block] - changed:
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] → method Block.convert_dtypes(infer_objects: bool=…, convert_string: bool=…, convert_integer: bool=…, convert_boolean: bool=…, convert_floating: bool=…, dtype_backend: DtypeBackend=…) -> list[Block] - changed:
method Block.copy(deep: bool=…) -> Self → method Block.copy(*, deep: bool) -> Self - changed:
method Block.fillna(value, limit: int | None=…, inplace: bool=…, downcast=…, using_cow: bool=…, already_warned=…) -> list[Block] → method Block.fillna(value, limit: int | None=…, inplace: bool=…) -> list[Block] - changed:
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] → method Block.interpolate(*, method: InterpolateOptions, index: Index, inplace: bool=…, limit: int | None=…, limit_direction: Literal['forward', 'backward', 'both']=…, limit_area: Literal['inside', 'outside'] | None=…, **kwargs) -> list[Block] - changed:
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] → method Block.pad_or_backfill(*, method: FillnaOptions, inplace: bool=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…) -> list[Block] - changed:
method Block.putmask(mask, new, using_cow: bool=…, already_warned=…) -> list[Block] → method Block.putmask(mask, new) -> list[Block] - changed:
method Block.reduce(func) -> list[Block] → method Block.reduce(func) -> Block - changed:
method Block.replace(to_replace, value, inplace: bool=…, mask: npt.NDArray[np.bool_] | None=…, using_cow: bool=…, already_warned=…, convert_string=…) -> list[Block] → method Block.replace(to_replace, value, inplace: bool=…, mask: npt.NDArray[np.bool_] | None=…) -> list[Block] - changed:
method Block.replace_list(src_list: Iterable[Any], dest_list: Sequence[Any], inplace: bool=…, regex: bool=…, using_cow: bool=…, already_warned=…) -> list[Block] → method Block.replace_list(src_list: Iterable[Any], dest_list: Sequence[Any], inplace: bool=…, regex: bool=…) -> list[Block] - changed:
method Block.round(decimals: int, using_cow: bool=…) -> Self → method Block.round(decimals: int) -> Self - changed:
method Block.setitem(indexer, value, using_cow: bool=…) -> Block → method Block.setitem(indexer, value) -> Block - changed:
method Block.where(other, cond, _downcast: str | bool=…, using_cow: bool=…) -> list[Block] → method Block.where(other, cond) -> list[Block] - changed:
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] → method EABackedBlock.pad_or_backfill(*, method: FillnaOptions, inplace: bool=…, limit: int | None=…, limit_area: Literal['inside', 'outside'] | None=…) -> list[Block] - changed:
method EABackedBlock.putmask(mask, new, using_cow: bool=…, already_warned=…) -> list[Block] → method EABackedBlock.putmask(mask, new) -> list[Block] - changed:
method EABackedBlock.setitem(indexer, value, using_cow: bool=…) → method EABackedBlock.setitem(indexer, value) - changed:
method EABackedBlock.where(other, cond, _downcast: str | bool=…, using_cow: bool=…) -> list[Block] → method EABackedBlock.where(other, cond) -> list[Block] - changed:
method ExtensionBlock.fillna(value, limit: int | None=…, inplace: bool=…, downcast=…, using_cow: bool=…, already_warned=…) -> list[Block] → method ExtensionBlock.fillna(value, limit: int | None=…, inplace: bool=…) -> list[Block]
- removed:
method JoinUnit.is_na_after_size_and_isna_all_deprecation() -> bool - changed:
function concatenate_managers(mgrs_indexers, axes: list[Index], concat_axis: AxisInt, copy: bool) -> Manager2D → function concatenate_managers(mgrs_indexers, axes: list[Index], concat_axis: AxisInt, copy: bool, union_categories: bool=…) -> BlockManager
- removed:
function mgr_to_mgr(mgr, typ: str, copy: bool=…) -> Manager - changed:
function arrays_to_mgr(arrays, columns: Index, index, *, dtype: DtypeObj | None=…, verify_integrity: bool=…, typ: str | None=…, consolidate: bool=…) -> Manager → function arrays_to_mgr(arrays, columns: Index, index, *, dtype: DtypeObj | None=…, verify_integrity: bool=…, consolidate: bool=…) -> Manager - changed:
function dict_to_mgr(data: dict, index, columns, *, dtype: DtypeObj | None=…, typ: str=…, copy: bool=…) -> Manager → function dict_to_mgr(data: dict, index, columns, *, dtype: DtypeObj | None=…, copy: bool=…) -> Manager - changed:
function ndarray_to_mgr(values, index, columns, dtype: DtypeObj | None, copy: bool, typ: str) -> Manager → function ndarray_to_mgr(values, index, columns, dtype: DtypeObj | None, copy: bool) -> Manager - changed:
function rec_array_to_mgr(data: np.rec.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) -> Manager
- removed:
field BaseBlockManager.apply_with_block - removed:
method BlockManager.to_dict() -> dict[str, Self] - changed:
class BaseBlockManager(DataManager) → class BaseBlockManager(PandasObject) - changed:
class SingleBlockManager(BaseBlockManager, SingleDataManager) → class SingleBlockManager(BaseBlockManager) - changed:
function raise_construction_error(tot_items: int, block_shape: Shape, axes: list[Index], e: ValueError | None=…) → function raise_construction_error(tot_items: int, block_shape: Shape, axes: list[Index], e: ValueError | None=…) -> NoReturn - changed:
method BaseBlockManager.astype(dtype, copy: bool | None=…, errors: str=…) -> Self → method BaseBlockManager.astype(dtype, errors: str=…) -> Self - changed:
method BaseBlockManager.convert(copy: bool | None) -> Self → method BaseBlockManager.convert() -> Self - changed:
method BaseBlockManager.copy(deep: bool | None | Literal['all']=…) -> Self → method BaseBlockManager.copy(*, deep: bool) -> Self - changed:
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 → method BaseBlockManager.reindex_indexer(new_axis: Index, indexer: npt.NDArray[np.intp] | None, axis: AxisInt, fill_value=…, allow_dups: bool=…, only_slice: bool=…, *, use_na_proxy: bool=…) -> Self - changed:
method BaseBlockManager.setitem(indexer, value, warn: bool=…) -> Self → method BaseBlockManager.setitem(indexer, value) -> Self - changed:
method SingleBlockManager.get_slice(slobj: slice, axis: AxisInt=…) -> SingleBlockManager → method SingleBlockManager.get_slice(slobj: slice, axis: AxisInt=…, new_index: Index | None=…) -> SingleBlockManager - changed:
method SingleBlockManager.setitem_inplace(indexer, value, warn: bool=…) -> None → method SingleBlockManager.setitem_inplace(indexer, value) -> None - added:
function ensure_np_dtype(dtype: DtypeObj) -> np.dtype - added:
function interleaved_dtype(dtypes: list[DtypeObj]) -> DtypeObj | None - added:
method BaseBlockManager.equals(other: object) -> bool - added:
method BaseBlockManager.fillna(value, limit: int | None, inplace: bool) -> Self - added:
method BaseBlockManager.get_unique_dtypes() -> npt.NDArray[np.object_] - added:
method BaseBlockManager.interpolate(inplace: bool, **kwargs) -> Self - added:
method BaseBlockManager.is_consolidated() -> bool - added:
method BaseBlockManager.isna(func) -> Self - added:
method BaseBlockManager.pad_or_backfill(inplace: bool, **kwargs) -> Self - added:
method BaseBlockManager.putmask(mask, new, align: bool=…) -> Self - added:
method BaseBlockManager.reindex_axis(new_index: Index, axis: AxisInt, fill_value=…, only_slice: bool=…) -> Self - added:
method BaseBlockManager.replace(to_replace, value, inplace: bool) -> Self - added:
method BaseBlockManager.replace_list(src_list: list[Any], dest_list: list[Any], inplace: bool=…, regex: bool=…) -> Self - added:
method BaseBlockManager.replace_regex(**kwargs) -> Self - added:
method BaseBlockManager.round(decimals: int) -> Self - added:
method BaseBlockManager.shift(periods: int, fill_value) -> Self - added:
method BaseBlockManager.where(other, cond, align: bool) -> Self - added:
method BlockManager.to_iter_dict() -> Generator[tuple[str, Self]] - added:
method SingleBlockManager.grouped_reduce(func) - added:
property BaseBlockManager.shape -> Shape - added:
property SingleBlockManager.array -> ArrayLike
- changed:
function blockwise_all(left: BlockManager, right: BlockManager, op) -> bool → function blockwise_all(left: BlockManager, right: BlockManager, op: Callable[[ArrayLike, ArrayLike], bool]) -> bool - changed:
function operate_blockwise(left: BlockManager, right: BlockManager, array_op) -> BlockManager → function operate_blockwise(left: BlockManager, right: BlockManager, array_op: Callable[[ArrayLike, ArrayLike], ArrayLike]) -> BlockManager
- removed:
function describe_timestamp_as_categorical_1d(data: Series, percentiles_ignored: Sequence[float]) -> Series - changed:
function select_describe_func(data: Series) -> Callable → function select_describe_func(data: Series) -> Callable[..., Series]
- added:
function filter_mask(obj: NDFrameT, mask: list[Any] | AnyArrayLike, axis: AxisInt, na: Literal['raise'] | bool) -> NDFrameT - added:
function is_mask(key: object) -> bool
- added:
function select(df: DataFrame, select_args: tuple[Any, ...], select_kwargs: dict[str, object]) -> DataFrame
- changed:
class SelectN → class SelectN(Generic[NDFrameT]) - changed:
class SelectNFrame(SelectN) → class SelectNFrame(SelectN[DataFrame]) - changed:
class SelectNSeries(SelectN) → class SelectNSeries(SelectN[Series]) - changed:
constructor SelectN(obj, n: int, keep: str) -> None → constructor SelectN(obj: NDFrameT, n: int, keep: Literal['first', 'last', 'all']) -> None - changed:
constructor SelectNFrame(obj: DataFrame, n: int, keep: str, columns: IndexLabel) -> None → constructor SelectNFrame(obj: DataFrame, n: int, keep: Literal['first', 'last', 'all'], columns: IndexLabel) -> None - changed:
method SelectN.compute(method: str) -> DataFrame | Series → method SelectN.compute(method: str) -> NDFrameT - changed:
method SelectN.nlargest() → method SelectN.nlargest() -> NDFrameT - changed:
method SelectN.nsmallest() → method SelectN.nsmallest() -> NDFrameT - added:
variable DataFrame - added:
variable NDFrameT - added:
variable Series
- added:
function create_data_for_split(df: DataFrame, are_all_object_dtype_cols: bool, object_dtype_indices: list[int]) -> Generator[list[Any]]
- changed:
function mask_missing(arr: ArrayLike, values_to_mask) -> npt.NDArray[np.bool_] → function mask_missing(arr: ArrayLike, value) -> npt.NDArray[np.bool_]
- changed:
function nankurt(values: np.ndarray, *, axis: AxisInt | 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=…) -> np.ndarray | float - changed:
function nanmedian(values, *, axis: AxisInt | None=…, skipna: bool=…, mask=…) → function nanmedian(values: np.ndarray, *, axis: AxisInt | None=…, skipna: bool=…, mask=…) -> float | np.ndarray - changed:
function nanskew(values: np.ndarray, *, axis: AxisInt | 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=…) -> np.ndarray | float - changed:
function nansum(values: np.ndarray, *, axis: AxisInt | 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=…) -> np.ndarray | np.int64 | float | NaTType - added:
function dt64_any_all_msg(how: str) -> str
- removed:
export make_flex_doc - added:
export disallow_datetimelike_logical_op - added:
export disallow_datetimelike_logical_ufunc - added:
export has_castable_attr - added:
export maybe_warn_listlike - added:
export raise_if_2d
- added:
function has_castable_attr(obj) -> bool - added:
function maybe_warn_listlike(other) -> None - added:
function raise_if_2d(other) -> None
- removed:
function make_flex_doc(op_name: str, typ: str) -> str
- changed:
function invalid_comparison(left, right, op) -> npt.NDArray[np.bool_] → function invalid_comparison(left: ArrayLike, right: ArrayLike | list[Any] | range | Scalar | NAType, op: Callable[[Any, Any], bool]) -> npt.NDArray[np.bool_] - changed:
function make_invalid_op(name: str) → function make_invalid_op(name: str) -> Callable[..., NoReturn] - added:
function disallow_datetimelike_logical_op(left: ArrayLike, right: Any, op: Callable[[Any, Any], Any]) -> None - added:
function disallow_datetimelike_logical_ufunc(ufunc: np.ufunc, inputs: tuple[Any, ...]) -> None
- changed:
function kleene_and(left: bool | libmissing.NAType | np.ndarray, right: bool | libmissing.NAType | np.ndarray, left_mask: np.ndarray | None, right_mask: np.ndarray | None) → function kleene_and(left: bool | libmissing.NAType | np.ndarray, right: bool | libmissing.NAType | np.ndarray, left_mask: np.ndarray | None, right_mask: np.ndarray | None) -> tuple[npt.NDArray[np.bool_], npt.NDArray[np.bool_]] - changed:
function kleene_or(left: bool | np.ndarray | libmissing.NAType, right: bool | np.ndarray | libmissing.NAType, left_mask: np.ndarray | None, right_mask: np.ndarray | None) → function kleene_or(left: bool | np.ndarray | libmissing.NAType, right: bool | np.ndarray | libmissing.NAType, left_mask: np.ndarray | None, right_mask: np.ndarray | None) -> tuple[npt.NDArray[np.bool_], npt.NDArray[np.bool_]] - changed:
function kleene_xor(left: bool | np.ndarray | libmissing.NAType, right: bool | np.ndarray | libmissing.NAType, left_mask: np.ndarray | None, right_mask: np.ndarray | None) → function kleene_xor(left: bool | np.ndarray | libmissing.NAType, right: bool | np.ndarray | libmissing.NAType, left_mask: np.ndarray | None, right_mask: np.ndarray | None) -> tuple[npt.NDArray[np.bool_], npt.NDArray[np.bool_]] - changed:
function raise_for_nan(value, method: str) -> None → function raise_for_nan(value: object, method: str) -> None
- removed:
class DatetimeIndexResamplerGroupby(_GroupByMixin, DatetimeIndexResampler) - removed:
class PeriodIndexResamplerGroupby(_GroupByMixin, PeriodIndexResampler) - removed:
class TimedeltaIndexResamplerGroupby(_GroupByMixin, TimedeltaIndexResampler) - removed:
function maybe_warn_args_and_kwargs(cls, kernel: str, args, kwargs) -> None - removed:
method Resampler.fillna(method, limit: int | None=…) - changed:
constructor Resampler(obj: NDFrame, timegrouper: TimeGrouper, axis: Axis=…, kind=…, *, gpr_index: Index, group_keys: bool=…, selection=…, include_groups: bool=…) -> None → constructor Resampler(obj: NDFrame, timegrouper: TimeGrouper, *, gpr_index: Index, group_keys: bool=…, selection=…, include_groups: bool=…) -> None - changed:
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… → constructor TimeGrouper(obj: Grouper | None=…, freq: Frequency=…, key: str | None=…, closed: Literal['left', 'right'] | None=…, label: Literal['left', 'right'] | None=…, how: str=…, fill_method=…, limit: int | None=…, convention: Literal['start', 'end', 'e', 's'] | None=…, origin: Literal['epoch', 'start', 'start_day', 'end', 'end_day'] | TimestampConvertibleTypes=…, offset: TimedeltaConvertibleT… - changed:
function get_resampler(obj: Series | DataFrame, kind=…, **kwds) -> Resampler → function get_resampler(obj: Series | DataFrame, **kwds) -> Resampler - changed:
function get_resampler_for_grouping(groupby: GroupBy, rule, how=…, fill_method=…, limit: int | None=…, kind=…, on=…, include_groups: bool=…, **kwargs) -> Resampler → function get_resampler_for_grouping(groupby: GroupBy, rule, how=…, fill_method=…, limit: int | None=…, on=…, **kwargs) -> Resampler - changed:
method Resampler.first(numeric_only: bool=…, min_count: int=…, skipna: bool=…, *args, **kwargs) → method Resampler.first(numeric_only: bool=…, min_count: int=…, skipna: bool=…) - changed:
method Resampler.interpolate(method: InterpolateOptions=…, *, axis: Axis=…, limit: int | None=…, inplace: bool=…, limit_direction: Literal['forward', 'backward', 'both']=…, limit_area=…, downcast=…, **kwargs) → method Resampler.interpolate(method: InterpolateOptions=…, *, axis: Axis=…, limit: int | None=…, limit_direction: Literal['forward', 'backward', 'both']=…, limit_area=…, **kwargs) - changed:
method Resampler.last(numeric_only: bool=…, min_count: int=…, skipna: bool=…, *args, **kwargs) → method Resampler.last(numeric_only: bool=…, min_count: int=…, skipna: bool=…) - changed:
method Resampler.max(numeric_only: bool=…, min_count: int=…, *args, **kwargs) → method Resampler.max(numeric_only: bool=…, min_count: int=…) - changed:
method Resampler.mean(numeric_only: bool=…, *args, **kwargs) → method Resampler.mean(numeric_only: bool=…) - changed:
method Resampler.median(numeric_only: bool=…, *args, **kwargs) → method Resampler.median(numeric_only: bool=…) - changed:
method Resampler.min(numeric_only: bool=…, min_count: int=…, *args, **kwargs) → method Resampler.min(numeric_only: bool=…, min_count: int=…) - changed:
method Resampler.nunique(*args, **kwargs) → method Resampler.nunique() - changed:
method Resampler.ohlc(*args, **kwargs) → method Resampler.ohlc() - changed:
method Resampler.pipe(func: Callable[..., T] | tuple[Callable[..., T], str], *args, **kwargs) -> T → method Resampler.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T - changed:
method Resampler.prod(numeric_only: bool=…, min_count: int=…, *args, **kwargs) → method Resampler.prod(numeric_only: bool=…, min_count: int=…) - changed:
method Resampler.sem(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Resampler.sem(ddof: int=…, numeric_only: bool=…) - changed:
method Resampler.std(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Resampler.std(ddof: int=…, numeric_only: bool=…) - changed:
method Resampler.sum(numeric_only: bool=…, min_count: int=…, *args, **kwargs) → method Resampler.sum(numeric_only: bool=…, min_count: int=…) - changed:
method Resampler.var(ddof: int=…, numeric_only: bool=…, *args, **kwargs) → method Resampler.var(ddof: int=…, numeric_only: bool=…) - added:
class DatetimeIndexResamplerGroupBy(_GroupByMixin, DatetimeIndexResampler) - added:
class PeriodIndexResamplerGroupBy(_GroupByMixin, PeriodIndexResampler) - added:
class TimedeltaIndexResamplerGroupBy(_GroupByMixin, TimedeltaIndexResampler)
- changed:
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… → 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 | lib.NoDefault=…, union_categories: bool=…) -> DataFrame | (objs: Iterable[Series] | Mapping[HashableT, Series], *, axis: Liter… - added:
function new_axes(objs: list[Series | DataFrame], bm_axis: AxisInt, intersect: bool, sort: bool | lib.NoDefault, keys: Iterable[Hashable] | None, names: list[HashableT] | None, axis: AxisInt, levels, verify_integrity: bool, ignore_index: bool) -> tuple[list[Index], list[bool]] - added:
function validate_unique_levels(levels: list[Index]) -> None
- changed:
function from_dummies(data: DataFrame, sep: None | str=…, default_category: None | Hashable | dict[str, Hashable]=…) -> DataFrame → function from_dummies(data: DataFrame, sep: str | None=…, default_category: Hashable | dict[str, Hashable] | None=…) -> DataFrame
- changed:
function ensure_list_vars(arg_vars, variable: str, columns) -> list → function ensure_list_vars(arg_vars, variable: str, columns) -> list[Hashable] - changed:
function lreshape(data: DataFrame, groups: dict, dropna: bool=…) -> DataFrame → function lreshape(data: DataFrame, groups: dict[Any, list[Any]], dropna: bool=…) -> DataFrame
- changed:
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 → 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 | lib.NoDefault=…, 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: int | Timedelta | None=…, 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 | datetime.timedelta | None=…, allow_exact_matches: bool=…, direction: str=…) -> DataFrame
- changed:
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 → function pivot_table(data: DataFrame, values=…, index=…, columns=…, aggfunc: AggFuncType=…, fill_value=…, margins: bool=…, dropna: bool=…, margins_name: Hashable=…, observed: bool=…, sort: bool=…, **kwargs) -> DataFrame
- changed:
function stack(frame: DataFrame, level=…, dropna: bool=…, sort: bool=…) → function stack(frame: DataFrame, level=…, dropna: bool=…, sort: bool=…) -> Series | DataFrame - changed:
function unstack(obj: Series | DataFrame, level, fill_value=…, sort: bool=…) → function unstack(obj: Series, level, fill_value=…, sort: bool=…) -> DataFrame | (obj: Series | DataFrame, level, fill_value=…, sort: bool=…) -> Series | DataFrame - added:
function stack_reshape(frame: DataFrame, level: list[int], set_levels: set[int], stack_cols: Index) -> Series | DataFrame
- removed:
function cartesian_product(X) -> list[np.ndarray] - removed:
function tile_compat(arr: NumpyIndexT, num: int) -> NumpyIndexT
- changed:
function radd(left, right) → function radd(left: Any, right: Any) -> Any - changed:
function rand_(left, right) → function rand_(left: Any, right: Any) -> Any - changed:
function rdiv(left, right) → function rdiv(left: Any, right: Any) -> Any - changed:
function rdivmod(left, right) → function rdivmod(left: Any, right: Any) -> tuple[Any, Any] - changed:
function rfloordiv(left, right) → function rfloordiv(left: Any, right: Any) -> Any - changed:
function rmod(left, right) → function rmod(left: Any, right: Any) -> Any - changed:
function rmul(left, right) → function rmul(left: Any, right: Any) -> Any - changed:
function ror_(left, right) → function ror_(left: Any, right: Any) -> Any - changed:
function rpow(left, right) → function rpow(left: Any, right: Any) -> Any - changed:
function rsub(left, right) → function rsub(left: Any, right: Any) -> Any - changed:
function rtruediv(left, right) → function rtruediv(left: Any, right: Any) -> Any - changed:
function rxor(left, right) → function rxor(left: Any, right: Any) -> Any
- changed:
function preprocess_weights(obj: NDFrame, weights, axis: AxisInt) -> np.ndarray → function preprocess_weights(obj: NDFrame, weights: str | ListLike, axis: AxisInt) -> np.ndarray
- removed:
method Series.ravel(order: str=…) -> ArrayLike - removed:
method Series.view(dtype: Dtype | None=…) -> Series - changed:
constructor Series(data=…, index=…, dtype: Dtype | None=…, name=…, copy: bool | None=…, fastpath: bool | lib.NoDefault=…) -> None → constructor Series(data=…, index=…, dtype: Dtype | None=…, name=…, copy: bool | None=…) -> None - changed:
method Series.aggregate(func=…, axis: Axis=…, *args, **kwargs) → method Series.aggregate(func=…, axis: Axis=…, *args, **kwargs) -> DataFrame | Series - changed:
method Series.apply(func: AggFuncType, convert_dtype: bool | lib.NoDefault=…, args: tuple[Any, ...]=…, *, by_row: Literal[False, 'compat']=…, **kwargs) -> DataFrame | Series → method Series.apply(func: AggFuncType, args: tuple[Any, ...]=…, *, by_row: Literal[False, 'compat']=…, **kwargs) -> DataFrame | Series - changed:
method Series.cummax(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method Series.cummax(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method Series.cummin(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method Series.cummin(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method Series.cumprod(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method Series.cumprod(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method Series.cumsum(axis: Axis | None=…, skipna: bool=…, *args, **kwargs) → method Series.cumsum(axis: Axis=…, skipna: bool=…, *args, **kwargs) -> Self - changed:
method Series.dot(other: AnyArrayLike) -> Series | np.ndarray → method Series.dot(other: AnyArrayLike | DataFrame) -> Series | np.ndarray - changed:
method Series.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=…) -> Series | (labels: IndexLabel=…, *, axis: Axis=…, index: I… → method Series.drop(labels: IndexLabel | ListLike=…, *, axis: Axis=…, index: IndexLabel | ListLike=…, columns: IndexLabel | ListLike=…, level: Level | None=…, inplace: Literal[True], errors: IgnoreRaise=…) -> None | (labels: IndexLabel | ListLike=…, *, axis: Axis=…, index: IndexLabel | ListLike=…, columns: IndexLabel | ListLike=…, level: Level | None=…, inplace: Literal[False]=…, errors: IgnoreRai… - changed:
method Series.groupby(by=…, axis: Axis=…, level: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool | lib.NoDefault=…, dropna: bool=…) -> SeriesGroupBy → method Series.groupby(by=…, level: IndexLabel | None=…, as_index: bool=…, sort: bool=…, group_keys: bool=…, observed: bool=…, dropna: bool=…) -> SeriesGroupBy - changed:
method Series.map(arg: Callable | Mapping | Series, na_action: Literal['ignore'] | None=…) -> Series → method Series.map(func: Callable | Mapping | Series | None=…, na_action: Literal['ignore'] | None=…, engine: Callable | None=…, **kwargs) -> Series - changed:
method Series.mean(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method Series.mean(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any - changed:
method Series.median(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) → method Series.median(axis: Axis | None=…, skipna: bool=…, numeric_only: bool=…, **kwargs) -> Any - changed:
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 → method Series.reindex(index=…, *, axis: Axis | None=…, method: ReindexMethod | None=…, copy: bool | lib.NoDefault=…, level: Level | None=…, fill_value: Scalar | None=…, limit: int | None=…, tolerance=…) -> Series - changed:
method Series.rename(index: Renamer | Hashable | None=…, *, axis: Axis | None=…, copy: bool=…, inplace: Literal[True], level: Level | None=…, errors: IgnoreRaise=…) -> None | (index: Renamer | Hashable | None=…, *, axis: Axis | None=…, copy: bool=…, inplace: Literal[False]=…, level: Level | None=…, errors: IgnoreRaise=…) -> Series | (index: Renamer | Hashable | None=…, *, axis: Axis | None=…, cop… → method Series.rename(index: Renamer | Hashable | None=…, *, axis: Axis | None=…, copy: bool | lib.NoDefault=…, inplace: Literal[True], level: Level | None=…, errors: IgnoreRaise=…) -> Series | None | (index: Renamer | Hashable | None=…, *, axis: Axis | None=…, copy: bool | lib.NoDefault=…, inplace: Literal[False]=…, level: Level | None=…, errors: IgnoreRaise=…) -> Series - changed:
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 → method Series.rename_axis(mapper: IndexLabel | lib.NoDefault=…, *, index=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: Literal[True]) -> None | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: Literal[False]=…) -> Self | (mapper: IndexLabel | lib.NoDefault=…, *, index=…, axis: Axis=…, copy: bool | lib.NoDefault=…, inplace: bool | li… - changed:
method Series.set_axis(labels, *, axis: Axis=…, copy: bool | None=…) -> Series → method Series.set_axis(labels, *, axis: Axis=…, copy: bool | lib.NoDefault=…) -> Series - changed:
method Series.swaplevel(i: Level=…, j: Level=…, copy: bool | None=…) -> Series → method Series.swaplevel(i: Level=…, j: Level=…, copy: bool | lib.NoDefault=…) -> Series - changed:
method Series.to_markdown(buf: IO[str] | None=…, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | None → method Series.to_markdown(buf: None=…, *, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> str | (buf: IO[str], *, mode: str=…, index: bool=…, storage_options: StorageOptions | None=…, **kwargs) -> None | (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 | None=…) -> Series → method Series.to_period(freq: str | None=…, copy: bool | lib.NoDefault=…) -> Series - changed:
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 → 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=…) ->… - changed:
method Series.to_timestamp(freq: Frequency | None=…, how: Literal['s', 'e', 'start', 'end']=…, copy: bool | None=…) -> Series → method Series.to_timestamp(freq: Frequency | None=…, how: ToTimestampHow=…, copy: bool | lib.NoDefault=…) -> Series - added:
method Series.describe(percentiles=…, include=…, exclude=…) -> Series - added:
static method Series.from_arrow(data: ArrowArrayExportable | ArrowStreamExportable) -> Series
- removed:
function get_flattened_list(comp_ids: npt.NDArray[np.intp], ngroups: int, levels: Iterable[Index], labels: Iterable[np.ndarray]) -> list[tuple] - removed:
function get_indexer_dict(label_list: list[np.ndarray], keys: list[Index]) -> dict[Hashable, npt.NDArray[np.intp]] - changed:
function ensure_key_mapped(values: ArrayLike | Index | Series, key: Callable | None, levels=…) -> ArrayLike | Index | Series → function ensure_key_mapped(values: ArrayLike | Index | Series, key: Callable | None, levels: Level | list[Level] | None=…) -> ArrayLike | Index | Series - changed:
function get_compressed_ids(labels, sizes: Shape) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.int64]] → function get_compressed_ids(labels: Sequence[npt.NDArray[np.signedinteger]], sizes: Shape) -> tuple[npt.NDArray[np.intp], npt.NDArray[np.int64]] - changed:
function get_group_index(labels, shape: Shape, sort: bool, xnull: bool) -> npt.NDArray[np.int64] → function get_group_index(labels: Sequence[npt.NDArray[np.signedinteger]], shape: Shape, sort: bool, xnull: bool) -> npt.NDArray[np.int64] - changed:
function lexsort_indexer(keys: Sequence[ArrayLike | Index | Series], orders=…, na_position: str=…, key: Callable | None=…, codes_given: bool=…) -> npt.NDArray[np.intp] → function lexsort_indexer(keys: Sequence[ArrayLike | Index | Series], orders: bool | Sequence[bool] | None=…, na_position: str=…, key: Callable | None=…, codes_given: bool=…) -> npt.NDArray[np.intp] - changed:
function nargminmax(values: ExtensionArray, method: str, axis: AxisInt=…) → function nargminmax(values: ExtensionArray, method: str, axis: AxisInt=…) -> int | np.ndarray
- removed:
field StringMethods.isalnum - removed:
field StringMethods.isalpha - removed:
field StringMethods.isdecimal - removed:
field StringMethods.isdigit - removed:
field StringMethods.islower - removed:
field StringMethods.isnumeric - removed:
field StringMethods.isspace - removed:
field StringMethods.istitle - removed:
field StringMethods.isupper - changed:
method StringMethods.get_dummies(sep: str=…) → method StringMethods.get_dummies(sep: str=…, dtype: NpDtype | None=…) - changed:
method StringMethods.match(pat: str, case: bool=…, flags: int=…, na=…) → method StringMethods.match(pat: str | re.Pattern, case: bool | lib.NoDefault=…, flags: int | lib.NoDefault=…, na=…) - changed:
method StringMethods.replace(pat: str | re.Pattern, repl: str | Callable, n: int=…, case: bool | None=…, flags: int=…, regex: bool=…) → method StringMethods.replace(pat: str | re.Pattern | dict, repl: str | Callable | None=…, n: int=…, case: bool | None=…, flags: int=…, regex: bool=…) - changed:
method StringMethods.wrap(width: int, **kwargs) → method StringMethods.wrap(width: int, expand_tabs: bool=…, tabsize: int=…, replace_whitespace: bool=…, drop_whitespace: bool=…, initial_indent: str=…, subsequent_indent: str=…, fix_sentence_endings: bool=…, break_long_words: bool=…, break_on_hyphens: bool=…, max_lines: int | None=…, placeholder: str=…) - added:
function get_group_names(regex: re.Pattern) -> list[Hashable] | range - added:
method StringMethods.isalnum() - added:
method StringMethods.isalpha() - added:
method StringMethods.isascii() - added:
method StringMethods.isdecimal() - added:
method StringMethods.isdigit() - added:
method StringMethods.islower() - added:
method StringMethods.isnumeric() - added:
method StringMethods.isspace() - added:
method StringMethods.istitle() - added:
method StringMethods.isupper()
- removed:
class BaseStringArrayMethods(abc.ABC)
- changed:
class ObjectStringArrayMixin(BaseStringArrayMethods) → class ObjectStringArrayMixin
- changed:
function should_cache(arg: ArrayConvertible, unique_share: float=…, check_count: int | None=…) -> bool → function should_cache(arg: ArrayConvertible, unique_share: float=…, check_count: int | None=…, format: str | None=…, unit: str | None=…) -> bool - changed:
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… → function to_datetime(arg: DatetimeScalar, errors: DateTimeErrorChoices=…, dayfirst: bool=…, yearfirst: bool=…, utc: bool=…, format: str | None=…, exact: bool=…, unit: str | None=…, origin=…, cache: bool=…) -> Timestamp | (arg: Series | DictConvertible, errors: DateTimeErrorChoices=…, dayfirst: bool=…, yearfirst: bool=…, utc: bool=…, format: str | None=…, exact: bool=…, unit: str | None=…, origin=…
- changed:
function to_timedelta(arg: str | float | timedelta, unit: UnitChoices | None=…, errors: DateTimeErrorChoices=…) -> Timedelta | (arg: Series, unit: UnitChoices | None=…, errors: DateTimeErrorChoices=…) -> Series | (arg: list | tuple | range | ArrayLike | Index, unit: UnitChoices | None=…, errors: DateTimeErrorChoices=…) -> TimedeltaIndex → function to_timedelta(arg: str | float | timedelta, unit: UnitChoices | None=…, errors: DateTimeErrorChoices=…) -> Timedelta | (arg: Series, unit: UnitChoices | None=…, errors: DateTimeErrorChoices=…) -> Series | (arg: list[Any] | tuple[Any, ...] | range | ArrayLike | Index, unit: UnitChoices | None=…, errors: DateTimeErrorChoices=…) -> TimedeltaIndex
- changed:
function combine_hash_arrays(arrays: Iterator[np.ndarray], num_items: int) -> npt.NDArray[np.uint64] → function combine_hash_arrays(arrays: Iterator[np.ndarray], num_items: int, length: int=…) -> npt.NDArray[np.uint64]
- changed:
function get_jit_arguments(engine_kwargs: dict[str, bool] | None=…, kwargs: dict | None=…) -> dict[str, bool] → function get_jit_arguments(engine_kwargs: dict[str, bool] | None=…) -> dict[str, bool] - added:
function prepare_function_arguments(func: Callable, args: tuple, kwargs: dict, *, num_required_args: int) -> tuple[tuple, dict]
- removed:
export ExpandingGroupby - removed:
export ExponentialMovingWindowGroupby - removed:
export RollingGroupby - added:
export ExpandingGroupBy - added:
export ExponentialMovingWindowGroupBy - added:
export RollingGroupBy
- removed:
class ExponentialMovingWindowGroupby(BaseWindowGroupby, ExponentialMovingWindow) - removed:
constructor ExponentialMovingWindowGroupby(obj, *args, _grouper=…, **kwargs) -> None - 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: 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=…, 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: 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=…, times: np.ndarray | NDFrame | None=…, engine: str=…, engine_kwargs: dict[str, bool] | None=…, *, selection=…) -> None - changed:
method ExponentialMovingWindow.aggregate(func, *args, **kwargs) → method ExponentialMovingWindow.aggregate(func=…, *args, **kwargs) - changed:
method OnlineExponentialMovingWindow.aggregate(func, *args, **kwargs) → method OnlineExponentialMovingWindow.aggregate(func=…, *args, **kwargs) - added:
class ExponentialMovingWindowGroupBy(BaseWindowGroupBy, ExponentialMovingWindow) - added:
constructor ExponentialMovingWindowGroupBy(obj, *args, _grouper=…, **kwargs) -> None
- removed:
class ExpandingGroupby(BaseWindowGroupby, Expanding) - changed:
constructor Expanding(obj: NDFrame, min_periods: int=…, axis: Axis=…, method: str=…, selection=…) -> None → constructor Expanding(obj: NDFrame, min_periods: int=…, method: str=…, selection=…) -> None - changed:
method Expanding.aggregate(func, *args, **kwargs) → method Expanding.aggregate(func=…, *args, **kwargs) - added:
class ExpandingGroupBy(BaseWindowGroupBy, Expanding) - added:
method Expanding.first(numeric_only: bool=…) - added:
method Expanding.last(numeric_only: bool=…) - added:
method Expanding.nunique(numeric_only: bool=…) - added:
method Expanding.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T
- changed:
function generate_numba_apply_func(func: Callable[..., Scalar], nopython: bool, nogil: bool, parallel: bool) → function generate_numba_apply_func(func: Callable[..., Scalar], nogil: bool, parallel: bool) - changed:
function generate_numba_ewm_func(nopython: bool, nogil: bool, parallel: bool, com: float, adjust: bool, ignore_na: bool, deltas: tuple, normalize: bool) → function generate_numba_ewm_func(nogil: bool, parallel: bool, com: float, adjust: bool, ignore_na: bool, deltas: tuple[float, ...], normalize: bool) - changed:
function generate_numba_ewm_table_func(nopython: bool, nogil: bool, parallel: bool, com: float, adjust: bool, ignore_na: bool, deltas: tuple, normalize: bool) → function generate_numba_ewm_table_func(nogil: bool, parallel: bool, com: float, adjust: bool, ignore_na: bool, deltas: tuple[float, ...], normalize: bool) - changed:
function generate_numba_table_func(func: Callable[..., np.ndarray], nopython: bool, nogil: bool, parallel: bool) → function generate_numba_table_func(func: Callable[..., np.ndarray], nogil: bool, parallel: bool)
- changed:
constructor EWMMeanState(com, adjust, ignore_na, axis, shape) -> None → constructor EWMMeanState(com: float, adjust: bool, ignore_na: bool, shape: tuple[int, ...]) -> None - changed:
function generate_online_numba_ewma_func(nopython: bool, nogil: bool, parallel: bool) → function generate_online_numba_ewma_func(nogil: bool, parallel: bool) -> Callable[[np.ndarray, np.ndarray, int, float, float, np.ndarray, bool, bool], tuple[np.ndarray, np.ndarray]] - changed:
method EWMMeanState.run_ewm(weighted_avg, deltas, min_periods, ewm_func) → method EWMMeanState.run_ewm(weighted_avg: np.ndarray, deltas: np.ndarray, min_periods: int, ewm_func: Callable[[np.ndarray, np.ndarray, int, float, float, np.ndarray, bool, bool], tuple[np.ndarray, np.ndarray]]) -> np.ndarray
- removed:
class BaseWindowGroupby(BaseWindow) - removed:
class RollingGroupby(BaseWindowGroupby, Rolling) - removed:
constructor BaseWindowGroupby(obj: DataFrame | Series, *args, _grouper: BaseGrouper, _as_index: bool=…, **kwargs) -> None - changed:
class BaseWindow(SelectionMixin) → class BaseWindow(SelectionMixin['NDFrame']) - changed:
constructor BaseWindow(obj: NDFrame, window=…, min_periods: int | None=…, center: bool | None=…, win_type: str | None=…, axis: Axis=…, on: str | Index | None=…, closed: str | None=…, step: int | None=…, method: str=…, *, selection=…) -> None → constructor BaseWindow(obj: NDFrame, window=…, min_periods: int | None=…, center: bool | None=…, win_type: str | None=…, on: str | Index | None=…, closed: str | None=…, step: int | None=…, method: str=…, *, selection=…) -> None - changed:
method BaseWindow.aggregate(func, *args, **kwargs) → method BaseWindow.aggregate(func=…, *args, **kwargs) - changed:
method Rolling.aggregate(func, *args, **kwargs) → method Rolling.aggregate(func=…, *args, **kwargs) - changed:
method Window.aggregate(func, *args, **kwargs) → method Window.aggregate(func=…, *args, **kwargs) - added:
class BaseWindowGroupBy(BaseWindow) - added:
class RollingGroupBy(BaseWindowGroupBy, Rolling) - added:
constructor BaseWindowGroupBy(obj: DataFrame | Series, *args, _grouper: BaseGrouper, _as_index: bool=…, **kwargs) -> None - added:
method Rolling.first(numeric_only: bool=…) - added:
method Rolling.last(numeric_only: bool=…) - added:
method Rolling.nunique(numeric_only: bool=…) - added:
method Rolling.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T - added:
method RollingAndExpandingMixin.first(numeric_only: bool=…) - added:
method RollingAndExpandingMixin.last(numeric_only: bool=…) - added:
method RollingAndExpandingMixin.nunique(numeric_only: bool=…) - added:
method RollingAndExpandingMixin.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T
- removed:
class SettingWithCopyError(ValueError) - removed:
class SettingWithCopyWarning(Warning) - changed:
constructor AbstractMethodError(class_instance, methodtype: str=…) -> None → constructor AbstractMethodError(class_instance: type | object, methodtype: str=…) -> None - added:
class ChainedAssignmentError(Warning) - added:
class Pandas4Warning(PandasDeprecationWarning) - added:
class Pandas5Warning(PandasPendingDeprecationWarning) - added:
class PandasChangeWarning(Warning) - added:
class PandasDeprecationWarning(PandasChangeWarning, DeprecationWarning) - added:
class PandasFutureWarning(PandasChangeWarning, FutureWarning) - added:
class PandasPendingDeprecationWarning(PandasChangeWarning, PendingDeprecationWarning) - added:
export IncompatibleFrequency - added:
static method Pandas4Warning.version() -> str - added:
static method Pandas5Warning.version() -> str - added:
static method PandasChangeWarning.version() -> str
- removed:
export read_gbq - added:
export read_iceberg
- changed:
function urlopen(*args, **kwargs) → function urlopen(*args: Any, **kwargs: Any) -> Any - added:
field IOArgs.close_handles: list[Any] - added:
function mangle_dupe_names(names: Sequence[Hashable], unnamed_col_indices: Sequence[int]=…, dtype: DtypeArg | None=…) -> list[Hashable]
- changed:
method CSSResolver.atomize(declarations: Iterable) -> Generator[tuple[str, str], None, None] → method CSSResolver.atomize(declarations: Iterable[tuple[str, str]]) -> Generator[tuple[str, str]] - changed:
method CSSResolver.size_to_pt(in_val, em_pt=…, conversions=…) -> str → method CSSResolver.size_to_pt(in_val: str, em_pt: float | None=…, conversions: dict[str, tuple[str, float]]=…) -> str
- removed:
property ExcelFormatter.header_style -> dict[str, dict[str, str | bool]] - changed:
constructor ExcelFormatter(df, na_rep: str=…, float_format: str | None=…, cols: Sequence[Hashable] | None=…, header: Sequence[Hashable] | bool=…, index: bool=…, index_label: IndexLabel | None=…, merge_cells: bool=…, inf_rep: str=…, style_converter: Callable | None=…) -> None → constructor ExcelFormatter(df, na_rep: str=…, float_format: str | None=…, cols: Sequence[Hashable] | None=…, header: Sequence[Hashable] | bool=…, index: bool=…, index_label: IndexLabel | None=…, merge_cells: ExcelWriterMergeCells=…, inf_rep: str=…, style_converter: Callable | None=…, autofilter: bool=…) -> None
- removed:
variable common_docstring: Final - removed:
variable return_docstring: Final - changed:
function get_format_datetime64(is_dates_only: bool, nat_rep: str=…, date_format: str | None=…) -> Callable → function get_format_datetime64(is_dates_only: bool, na_rep: str=…, date_format: str | None=…) -> Callable - changed:
function get_format_timedelta64(values: TimedeltaArray, nat_rep: str | float=…, box: bool=…) -> Callable → function get_format_timedelta64(values: TimedeltaArray, na_rep: str | float=…, box: bool=…) -> Callable - added:
function format_name(name: Hashable) -> str
- changed:
method HTMLFormatter.write_tr(line: Iterable, indent: int=…, indent_delta: int=…, header: bool=…, align: str | None=…, tags: dict[int, str] | None=…, nindex_levels: int=…) -> None → method HTMLFormatter.write_tr(line: Iterable[Hashable], indent: int=…, indent_delta: int=…, header: bool=…, align: str | None=…, tags: dict[int, str] | None=…, nindex_levels: int=…) -> None
- removed:
property DataFrameInfo.non_null_counts -> Sequence[int] - removed:
property SeriesInfo.non_null_counts -> Sequence[int] - removed:
variable INFO_DOCSTRING - removed:
variable frame_examples_sub - removed:
variable frame_max_cols_sub - removed:
variable frame_see_also_sub - removed:
variable frame_sub_kwargs - removed:
variable series_examples_sub - removed:
variable series_see_also_sub - removed:
variable series_sub_kwargs - removed:
variable show_counts_sub - added:
property DataFrameInfo.non_null_counts -> Series - added:
property SeriesInfo.non_null_counts -> list[int]
- changed:
function adjoin(space: int, *lists: list[str], **kwargs) -> str → function adjoin(space: int, *lists: list[str], **kwargs: Any) -> str - changed:
function format_object_summary(obj, formatter: Callable, is_justify: bool=…, name: str | None=…, indent_for_name: bool=…, line_break_each_value: bool=…) -> str → function format_object_summary(obj: ListLike, formatter: Callable[..., Any], is_justify: bool=…, name: str | None=…, indent_for_name: bool=…, line_break_each_value: bool=…) -> str - changed:
function pprint_thing(thing: Any, _nest_lvl: int=…, escape_chars: EscapeChars | None=…, default_escapes: bool=…, quote_strings: bool=…, max_seq_items: int | None=…) -> str → function pprint_thing(thing: object, _nest_lvl: int=…, escape_chars: EscapeChars | None=…, default_escapes: bool=…, quote_strings: bool=…, max_seq_items: int | None=…) -> str - changed:
function pprint_thing_encoded(object, encoding: str=…, errors: str=…) -> bytes → function pprint_thing_encoded(thing: object, encoding: str=…, errors: str=…) -> bytes - changed:
variable EscapeChars → variable EscapeChars: TypeAlias
- removed:
method Styler.applymap(func: Callable, subset: Subset | None=…, **kwargs) -> Styler - removed:
method Styler.applymap_index(func: Callable, axis: AxisInt | str=…, level: Level | list[Level] | None=…, **kwargs) -> Styler - removed:
variable buffering_args - removed:
variable coloring_args - removed:
variable encoding_args - removed:
variable has_mpl - removed:
variable properties_args - removed:
variable subset_args - changed:
method Styler.pipe(func: Callable, *args, **kwargs) → method Styler.pipe(func: Callable[Concatenate[Self, P], T], *args: P.args, **kwargs: P.kwargs) -> T | (func: tuple[Callable[..., T], str], *args: Any, **kwargs: Any) -> T - changed:
method Styler.set_tooltips(ttips: DataFrame, props: CSSProperties | None=…, css_class: str | None=…) -> Styler → method Styler.set_tooltips(ttips: DataFrame, props: CSSProperties | None=…, css_class: str | None=…, as_title_attribute: bool=…) -> Styler - changed:
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=…,… → 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: ExcelWriterMergeCells=…, encoding: str | None=…, inf_rep: str=…,… - added:
method Styler.to_typst(buf: FilePath | WriteBuffer[str], *, encoding: str | None=…, sparse_index: bool | None=…, sparse_columns: bool | None=…, max_rows: int | None=…, max_columns: int | None=…) -> None | (buf: None=…, *, encoding: str | None=…, sparse_index: bool | None=…, sparse_columns: bool | None=…, max_rows: int | None=…, max_columns: int | None=…) -> str
- changed:
constructor Tooltips(css_props: CSSProperties=…, css_name: str=…, tooltips: DataFrame=…) -> None → constructor Tooltips(css_props: CSSProperties=…, css_name: str=…, tooltips: DataFrame=…, as_title_attribute: bool=…) -> None - changed:
variable BaseFormatter → variable BaseFormatter: TypeAlias - changed:
variable CSSList → variable CSSList: TypeAlias - changed:
variable CSSPair → variable CSSPair: TypeAlias - changed:
variable CSSProperties → variable CSSProperties: TypeAlias - changed:
variable CSSStyles → variable CSSStyles: TypeAlias - changed:
variable ExtFormatter → variable ExtFormatter: TypeAlias - added:
field StylerRenderer.template_dir - added:
field StylerRenderer.template_typst - added:
field StylerRenderer.this_dir - added:
method StylerRenderer.format_index_names(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:
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 - removed:
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
- added:
function read_iceberg(table_identifier: str, catalog_name: str | None=…, *, catalog_properties: dict[str, Any] | None=…, columns: list[str] | None=…, row_filter: str | None=…, case_sensitive: bool=…, snapshot_id: int | None=…, limit: int | None=…, scan_properties: dict[str, Any] | None=…) -> DataFrame - added:
function to_iceberg(df: DataFrame, table_identifier: str, catalog_name: str | None=…, *, catalog_properties: dict[str, Any] | None=…, location: str | None=…, append: bool=…, snapshot_properties: dict[str, str] | None=…) -> None
- changed:
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 → function read_parquet(path: FilePath | ReadBuffer[bytes], engine: str | lib.NoDefault=…, columns: list[str] | None=…, storage_options: StorageOptions | None=…, dtype_backend: DtypeBackend | lib.NoDefault=…, filesystem: Any=…, filters: list[tuple[Any, ...]] | list[list[tuple[Any, ...]]] | None=…, to_pandas_kwargs: dict[str, Any] | 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 | None=…, partition_cols: list[str] | None=…, filesystem: Any=…, **kwargs) -> bytes | None → function to_parquet(df: DataFrame, path: FilePath | WriteBuffer[bytes] | None=…, engine: str | lib.NoDefault=…, compression: ParquetCompressionOptions=…, index: bool | None=…, storage_options: StorageOptions | None=…, partition_cols: list[str] | None=…, filesystem: Any=…, **kwargs) -> bytes | None - changed:
method BaseImpl.write(df: DataFrame, path, compression, **kwargs) → method BaseImpl.write(df: DataFrame, path, compression, **kwargs) -> None - changed:
method FastParquetImpl.read(path, columns=…, filters=…, storage_options: StorageOptions | None=…, filesystem=…, **kwargs) -> DataFrame → method FastParquetImpl.read(path, columns=…, filters=…, storage_options: StorageOptions | None=…, filesystem=…, to_pandas_kwargs: dict[str, Any] | None=…, **kwargs) -> DataFrame - changed:
method PyArrowImpl.read(path, columns=…, filters=…, use_nullable_dtypes: bool=…, dtype_backend: DtypeBackend | lib.NoDefault=…, storage_options: StorageOptions | None=…, filesystem=…, **kwargs) -> DataFrame → method PyArrowImpl.read(path, columns=…, filters=…, dtype_backend: DtypeBackend | lib.NoDefault=…, storage_options: StorageOptions | None=…, filesystem=…, to_pandas_kwargs: dict[str, Any] | None=…, **kwargs) -> DataFrame - changed:
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 → method PyArrowImpl.write(df: DataFrame, path: FilePath | WriteBuffer[bytes], compression: ParquetCompressionOptions=…, index: bool | None=…, storage_options: StorageOptions | None=…, partition_cols: list[str] | None=…, filesystem=…, **kwargs) -> None
- removed:
field ParserBase.BadLineHandleMethod.ERROR - removed:
field ParserBase.BadLineHandleMethod.SKIP - removed:
field ParserBase.BadLineHandleMethod.WARN - removed:
field ParserBase.keep_date_col: bool - added:
field ParserBase.BadLineHandleMethod.BLHM_ERROR - added:
field ParserBase.BadLineHandleMethod.BLHM_SKIP - added:
field ParserBase.BadLineHandleMethod.BLHM_WARN - added:
function date_converter(date_col, col: Hashable, dayfirst: bool=…, cache_dates: bool=…, date_format: dict[Hashable, str] | str | None=…) - added:
function evaluate_callable_usecols(usecols: Callable[[Hashable], object], names: Iterable[Hashable]) -> set[int] | (usecols: SequenceT, names: Iterable[Hashable]) -> SequenceT - added:
function get_na_values(col, na_values, na_fvalues, keep_default_na: bool) - added:
function validate_parse_dates_presence(parse_dates: bool | list, columns: Sequence[Hashable]) -> set
- changed:
method CParserWrapper.read(nrows: int | None=…) -> tuple[Index | MultiIndex | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, ArrayLike]] → method CParserWrapper.read(nrows: int | None=…) -> tuple[Index | MultiIndex | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, AnyArrayLike]] - added:
field CParserWrapper.wrap_deferred: bool
- removed:
function count_empty_vals(vals) -> int - changed:
method PythonParser.get_chunk(size: int | None=…) -> tuple[Index | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, ArrayLike]] → method PythonParser.get_chunk(size: int | None=…) -> tuple[Index | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, ArrayLike | Series]] - changed:
method PythonParser.read(rows: int | None=…) -> tuple[Index | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, ArrayLike]] → method PythonParser.read(rows: int | None=…) -> tuple[Index | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, ArrayLike | Series]]
- 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: UsecolsArgType=…, dtype: DtypeArg | None=…, engine: CSVEngine… → function read_csv(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, iterator: Literal[True], chunksize: int | None=…, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader | (filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, iterator: bool=…, chunksize: int, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader | (filepath_or_buffer:… - 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=…, dtype_backend: DtypeBackend | lib.NoDefault=…, iterator: Literal[True], chunksize: int | None=…, **kwds) -> TextFileReader | (filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str],… → 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=…, iterator: Literal[True], chunksize: int | None=…, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader | (filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, colspecs: S… - 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: UsecolsArgType=…, dtype: DtypeArg | None=…, engine: CSVEngi… → function read_table(filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, iterator: Literal[True], chunksize: int | None=…, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader | (filepath_or_buffer: FilePath | ReadCsvBuffer[bytes] | ReadCsvBuffer[str], *, iterator: bool=…, chunksize: int, **kwds: Unpack[_read_shared[HashableT]]) -> TextFileReader | (filepath_or_buffe…
- removed:
method Fixed.validate_version(where=…) -> None - removed:
method Table.validate_version(where=…) -> None - removed:
property BlockManagerFixed.shape -> Shape | None - removed:
property DataCol.meta_attr -> str - removed:
property Fixed.is_old_version -> bool - removed:
property Fixed.version -> tuple[int, int, int] - removed:
property SeriesFixed.shape - removed:
variable incompatibility_doc: Final - changed:
constructor IndexCol(name: str, values=…, kind=…, typ=…, cname: str | None=…, axis=…, pos=…, freq=…, tz=…, index_name=…, ordered=…, table=…, meta=…, metadata=…) -> None → constructor IndexCol(name: str, values=…, kind=…, typ=…, cname: str | None=…, axis=…, pos=…, freq=…, tz=…, index_name=…, ordered=…, table=…, meta=…, metadata=…, nan_rep=…) -> None - changed:
function to_hdf(path_or_buf: FilePath | HDFStore, key: str, value: DataFrame | Series, mode: str=…, complevel: int | None=…, complib: str | None=…, append: bool=…, format: str | None=…, index: bool=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, dropna: bool | None=…, data_columns: Literal[True] | list[str] | None=…, errors: str=…, encoding: str=…) -> None → function to_hdf(path_or_buf: FilePath | HDFStore, key: str, value: DataFrame | Series, mode: str=…, complevel: int | None=…, complib: str | None=…, append: bool=…, format: str | None=…, index: bool=…, min_itemsize: int | dict[str, int] | None=…, nan_rep=…, dropna: bool | lib.NoDefault | None=…, data_columns: Literal[True] | list[str] | None=…, errors: str=…, encoding: str=…) -> None - changed:
method AppendableMultiFrameTable.read(where=…, columns=…, start: int | None=…, stop: int | None=…) → method AppendableMultiFrameTable.read(where=…, columns=…, start: int | None=…, stop: int | None=…) -> DataFrame - changed:
method AppendableTable.delete(where=…, start: int | None=…, stop: int | None=…) → method AppendableTable.delete(where=…, start: int | None=…, stop: int | None=…) -> int | None - changed:
method Fixed.delete(where=…, start: int | None=…, stop: int | None=…) -> None → method Fixed.delete(where=…, start: int | None=…, stop: int | None=…) -> int | None - changed:
method Fixed.read(where=…, columns=…, start: int | None=…, stop: int | None=…) → method Fixed.read(where=…, columns=…, start: int | None=…, stop: int | None=…) -> Series | DataFrame - changed:
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 → 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 | lib.NoDefault | 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: bool=…, **kwargs) -> None → method HDFStore.append_to_multiple(d: dict, value, selector, data_columns=…, axes=…, dropna: bool | lib.NoDefault=…, **kwargs) -> None - changed:
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 → 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 | lib.NoDefault=…, dropna: bool | lib.NoDefault=…) -> None - changed:
method HDFStore.remove(key: str, where=…, start=…, stop=…) -> None → method HDFStore.remove(key: str, where=…, start=…, stop=…) -> int | None - changed:
method Selection.generate(where) → method Selection.generate(where: dict | list | tuple | str) -> PyTablesExpr | (where: None) -> None - changed:
method Table.index_cols() → method Table.index_cols() -> list[tuple[Any, Any]] - changed:
method Table.validate_data_columns(data_columns, min_itemsize, non_index_axes) → method Table.validate_data_columns(data_columns, min_itemsize, non_index_axes, index_cnames=…) -> list - changed:
variable Term → variable Term: TypeAlias - added:
field IndexCol.uses_col_nan_rep: bool - added:
property BlockManagerFixed.shape -> list[int] | None - added:
property IndexCol.meta_attr -> str - added:
property IndexCol.nan_rep_attr -> str - added:
property SeriesFixed.shape -> tuple[int] | None
- changed:
class SAS7BDATReader(ReaderBase, abc.Iterator) → class SAS7BDATReader(SASReader) - changed:
constructor SAS7BDATReader(path_or_buf: FilePath | ReadBuffer[bytes], index=…, convert_dates: bool=…, blank_missing: bool=…, chunksize: int | None=…, encoding: str | None=…, convert_text: bool=…, convert_header_text: bool=…, compression: CompressionOptions=…) -> None → constructor SAS7BDATReader(path_or_buf: FilePath | ReadBuffer[bytes], index=…, convert_dates: bool=…, blank_missing: bool=…, chunksize: int | None=…, encoding: str | lib.NoDefault | None=…, convert_text: bool=…, convert_header_text: bool=…, compression: CompressionOptions=…) -> None - added:
field SAS7BDATReader.encoding: str | None
- added:
variable string_mode_object: Final - added:
variable string_mode_table: Final - added:
variable string_mode_utf8: Final - added:
variable undefined_byte: Final
- changed:
class XportReader(ReaderBase, abc.Iterator) → class XportReader(SASReader) - changed:
constructor XportReader(filepath_or_buffer: FilePath | ReadBuffer[bytes], index=…, encoding: str | None=…, chunksize: int | None=…, compression: CompressionOptions=…) -> None → constructor XportReader(filepath_or_buffer: FilePath | ReadBuffer[bytes], index=…, encoding: str | lib.NoDefault | None=…, chunksize: int | None=…, compression: CompressionOptions=…) -> None
- removed:
class ReaderBase(ABC) - removed:
method ReaderBase.close() -> None - removed:
method ReaderBase.read(nrows: int | None=…) -> DataFrame - 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=…, compre… → function read_sas(filepath_or_buffer: FilePath | ReadBuffer[bytes], *, format: str | None=…, index: Hashable | None=…, encoding: str | lib.NoDefault | None=…, chunksize: int=…, iterator: bool=…, compression: CompressionOptions=…) -> SASReader | (filepath_or_buffer: FilePath | ReadBuffer[bytes], *, format: str | None=…, index: Hashable | None=…, encoding: str | lib.NoDefault | None=…, chunksize: N… - added:
class SASReader(Iterator['DataFrame'], ABC) - added:
method SASReader.close() -> None - added:
method SASReader.read(nrows: int | None=…) -> DataFrame
- changed:
function read_spss(path: str | Path, usecols: Sequence[str] | None=…, convert_categoricals: bool=…, dtype_backend: DtypeBackend | lib.NoDefault=…) -> DataFrame → function read_spss(path: str | Path, usecols: Sequence[str] | None=…, convert_categoricals: bool=…, dtype_backend: DtypeBackend | lib.NoDefault=…, **kwargs: Any) -> DataFrame
- removed:
function execute(sql, con, params=…) - changed:
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 → constructor SQLTable(name: str, pandas_sql_engine, frame=…, index: bool | str | list[str] | None=…, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, prefix: str=…, index_label=…, schema=…, keys=…, dtype: DtypeArg | None=…) -> None - changed:
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… → 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] | dict[str, dict[str, Any]] | None=…, chunksize: None=…, dtype: DtypeArg | None=…, dtype_backend: DtypeBackend | lib.NoDefault=…) -> DataFrame | (sql, con, index_col: str | list[str] | None=…, coerce_float=…, params: list[An… - changed:
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… → function read_sql_table(table_name: str, con, schema=…, index_col: str | list[str] | None=…, coerce_float=…, parse_dates: list[str] | dict[str, str] | dict[str, dict[str, Any]] | 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: lis… - changed:
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 → function to_sql(frame, name: str, con, schema: str | None=…, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, 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 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 → method ADBCDatabase.to_sql(frame, name: str, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, 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 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 → method PandasSQL.to_sql(frame, name: str, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, index: bool=…, index_label=…, schema=…, chunksize: int | None=…, dtype: DtypeArg | None=…, method: Literal['multi'] | Callable | None=…, engine: str=…, **engine_kwargs) -> int | None - changed:
method SQLDatabase.execute(sql: str | Select | TextClause, params=…) → method SQLDatabase.execute(sql: str | Select | TextClause | Delete, params=…) - changed:
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 → method SQLDatabase.prep_table(frame, name: str, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, index: bool | str | list[str] | None=…, index_label=…, schema=…, dtype: DtypeArg | None=…) -> SQLTable - changed:
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 → method SQLDatabase.to_sql(frame, name: str, if_exists: Literal['fail', 'replace', 'append', 'delete_rows']=…, 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 ADBCDatabase.delete_rows(name: str, schema: str | None=…) -> None - added:
method SQLDatabase.delete_rows(table_name: str, schema: str | None=…) -> None - added:
method SQLiteDatabase.delete_rows(name: str, schema: str | None=…) -> None
- removed:
method StataReader.close() -> None - changed:
class StataReader(StataParser, abc.Iterator) → class StataReader(StataParser, abc.Iterator[DataFrame]) - changed:
method StataReader.value_labels() -> dict[str, dict[float, str]] → method StataReader.value_labels() -> dict[str, dict[int, str]] - added:
variable unix_epoch: Final
- changed:
function get_data_from_filepath(filepath_or_buffer: FilePath | bytes | ReadBuffer[bytes] | ReadBuffer[str], encoding: str | None, compression: CompressionOptions, storage_options: StorageOptions) -> str | bytes | ReadBuffer[bytes] | ReadBuffer[str] → function get_data_from_filepath(filepath_or_buffer: FilePath | ReadBuffer[bytes] | ReadBuffer[str], encoding: str | None, compression: CompressionOptions, storage_options: StorageOptions) -> io.StringIO | io.BytesIO | IO[str] | IO[bytes] - changed:
function preprocess_data(data) -> io.StringIO | io.BytesIO → function preprocess_data(data: str | bytes | io.StringIO | io.BytesIO) -> io.StringIO | io.BytesIO
- changed:
function infer_freq(index: DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixin) -> str | None → function infer_freq(index: DatetimeIndex | TimedeltaIndex | Series | DatetimeLikeArrayMixin) -> str | BaseOffset | None
- changed:
function get_calendar(name: str) → function get_calendar(name: str) -> AbstractHolidayCalendar
- added:
export BHalfYearBegin - added:
export BHalfYearEnd - added:
export HalfYearBegin - added:
export HalfYearEnd
- removed:
function capitalize_first_letter(s)
- removed:
class LegacyVersion(_BaseVersion) - removed:
constructor LegacyVersion(version: str) -> None - removed:
property LegacyVersion.base_version -> str - removed:
property LegacyVersion.dev -> None - removed:
property LegacyVersion.epoch -> int - removed:
property LegacyVersion.is_devrelease -> bool - removed:
property LegacyVersion.is_postrelease -> bool - removed:
property LegacyVersion.is_prerelease -> bool - removed:
property LegacyVersion.local -> None - removed:
property LegacyVersion.post -> None - removed:
property LegacyVersion.pre -> None - removed:
property LegacyVersion.public -> str - removed:
property LegacyVersion.release -> None - changed:
function parse(version: str) -> LegacyVersion | Version → function parse(version: str) -> Version