diff --git a/doc/source/user_guide/io.rst b/doc/source/user_guide/io.rst index 3f59ad2faae08..7092a0f8fa8d8 100644 --- a/doc/source/user_guide/io.rst +++ b/doc/source/user_guide/io.rst @@ -303,8 +303,6 @@ compression : {``'infer'``, ``'gzip'``, ``'bz2'``, ``'zip'``, ``'xz'``, ``'zstd' As an example, the following could be passed for faster compression and to create a reproducible gzip archive: ``compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}``. - - .. versionchanged:: 1.2.0 Previous versions forwarded dict entries for 'gzip' to ``gzip.open``. thousands : str, default ``None`` Thousands separator. decimal : str, default ``'.'`` @@ -1472,7 +1470,7 @@ rather than reading the entire file into memory, such as the following: table -By specifying a ``chunksize`` to ``read_csv``, the return +By specifying a ``chunksize`` to :func:`read_csv` as a context manager, the return value will be an iterable object of type ``TextFileReader``: .. ipython:: python @@ -1482,10 +1480,6 @@ value will be an iterable object of type ``TextFileReader``: for chunk in reader: print(chunk) -.. versionchanged:: 1.2 - - ``read_csv/json/sas`` return a context-manager when iterating through a file. - Specifying ``iterator=True`` will also return the ``TextFileReader`` object: .. ipython:: python diff --git a/doc/source/user_guide/visualization.rst b/doc/source/user_guide/visualization.rst index 4b5cdca23103c..a12a1e1477563 100644 --- a/doc/source/user_guide/visualization.rst +++ b/doc/source/user_guide/visualization.rst @@ -326,8 +326,6 @@ The ``by`` keyword can be specified to plot grouped histograms: In addition, the ``by`` keyword can also be specified in :meth:`DataFrame.plot.hist`. -.. versionchanged:: 1.4.0 - .. ipython:: python data = pd.DataFrame( @@ -480,8 +478,6 @@ columns: You could also create groupings with :meth:`DataFrame.plot.box`, for instance: -.. versionchanged:: 1.4.0 - .. ipython:: python :suppress: diff --git a/pandas/core/arrays/categorical.py b/pandas/core/arrays/categorical.py index 41e5c6f65dbb9..c6e01096ad158 100644 --- a/pandas/core/arrays/categorical.py +++ b/pandas/core/arrays/categorical.py @@ -2545,10 +2545,6 @@ def unique(self) -> Self: Return the ``Categorical`` which ``categories`` and ``codes`` are unique. - .. versionchanged:: 1.3.0 - - Previously, unused categories were dropped from the new categories. - Returns ------- Categorical diff --git a/pandas/core/arrays/masked.py b/pandas/core/arrays/masked.py index 276ccbdc76fdd..6085b577f4392 100644 --- a/pandas/core/arrays/masked.py +++ b/pandas/core/arrays/masked.py @@ -1686,8 +1686,6 @@ def any( missing values are present, similar :ref:`Kleene logic ` is used as for logical operations. - .. versionchanged:: 1.4.0 - Parameters ---------- skipna : bool, default True @@ -1774,8 +1772,6 @@ def all( missing values are present, similar :ref:`Kleene logic ` is used as for logical operations. - .. versionchanged:: 1.4.0 - Parameters ---------- skipna : bool, default True diff --git a/pandas/core/arrays/string_.py b/pandas/core/arrays/string_.py index ec591d7711fa9..fd68cc513125d 100644 --- a/pandas/core/arrays/string_.py +++ b/pandas/core/arrays/string_.py @@ -573,9 +573,7 @@ class StringArray(BaseStringArray, NumpyExtensionArray): # type: ignore[misc] :meth:`pandas.array` with ``dtype="string"`` for a stable way of creating a `StringArray` from any sequence. - .. versionchanged:: 1.5.0 - - StringArray now accepts array-likes containing + StringArray accepts array-likes containing nan-likes(``None``, ``np.nan``) for the ``values`` parameter in addition to strings and :attr:`pandas.NA` diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 90d73ca067260..019953b0dece2 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -554,8 +554,6 @@ class DataFrame(NDFrame, OpsMixin): If data is a dict containing one or more Series (possibly of different dtypes), ``copy=False`` will ensure that these inputs are not copied. - .. versionchanged:: 1.3.0 - See Also -------- DataFrame.from_records : Constructor from tuples, also record arrays. @@ -2686,8 +2684,6 @@ def to_stata( 8 characters and values are repeated. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - {storage_options} value_labels : dict of dicts @@ -2695,8 +2691,6 @@ def to_stata( to labels as values. Labels for a single variable must be 32,000 characters or smaller. - .. versionadded:: 1.4.0 - Raises ------ NotImplementedError @@ -3534,8 +3528,6 @@ def to_xml( scripts and not later versions is currently supported. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - {storage_options} Returns @@ -9487,13 +9479,6 @@ def groupby( when the result's index (and column) labels match the inputs, and are included otherwise. - .. versionchanged:: 1.5.0 - - Warns that ``group_keys`` will no longer be ignored when the - result from ``apply`` is a like-indexed Series or DataFrame. - Specify ``group_keys`` explicitly to include the group keys or - not. - .. versionchanged:: 2.0.0 ``group_keys`` now defaults to ``True``. diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 735a59e5cfbb8..e2ba7c312a213 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -2415,8 +2415,6 @@ def to_json( list-like. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - index : bool or None, default None The index is only used when 'orient' is 'split', 'index', 'column', or 'table'. Of these, 'index' and 'column' do not support @@ -3850,12 +3848,6 @@ def to_csv( The newline character or character sequence to use in the output file. Defaults to `os.linesep`, which depends on the OS in which this method is called ('\\n' for linux, '\\r\\n' for Windows, i.e.). - - .. versionchanged:: 1.5.0 - - Previously was line_terminator, changed for consistency with - read_csv and the standard library 'csv' module. - chunksize : int or None Rows to write at a time. date_format : str, default None @@ -5859,11 +5851,6 @@ def sample( If int, array-like, or BitGenerator, seed for random number generator. If np.random.RandomState or np.random.Generator, use as given. Default ``None`` results in sampling with the current state of np.random. - - .. versionchanged:: 1.4.0 - - np.random.Generator objects now accepted - axis : {0 or 'index', 1 or 'columns', None}, default None Axis to sample. Accepts axis number or name. Default is stat axis for given data type. For `Series` this parameter is unused and defaults to `None`. diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index 512f82c495007..7240db129b246 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -251,9 +251,7 @@ def _get_data_to_aggregate( 1 1 2 2 3 4 - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the aggregating function. + The resulting dtype will reflect the return value of the aggregating function. >>> s.groupby([1, 1, 2, 2]).agg(lambda x: x.astype(float).min()) 1 1.0 @@ -307,11 +305,8 @@ def apply(self, func, *args, **kwargs) -> Series: Notes ----- - - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``, - see the examples below. + The resulting dtype will reflect the return value of the passed ``func``, + see the examples below. Functions that mutate the passed object can produce unexpected behavior or errors and are not supported. See :ref:`gotchas.udf-mutation` @@ -332,9 +327,7 @@ def apply(self, func, *args, **kwargs) -> Series: its argument and returns a Series. `apply` combines the result for each group together into a new Series. - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``. + The resulting dtype will reflect the return value of the passed ``func``. >>> g1.apply(lambda x: x * 2 if x.name == "a" else x / 2) a 0.0 @@ -455,10 +448,8 @@ def aggregate(self, func=None, *args, engine=None, engine_kwargs=None, **kwargs) behavior or errors and are not supported. See :ref:`gotchas.udf-mutation` for more details. - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``, - see the examples below. + The resulting dtype will reflect the return value of the passed ``func``, + see the examples below. Examples -------- @@ -497,10 +488,8 @@ def aggregate(self, func=None, *args, engine=None, engine_kwargs=None, **kwargs) 1 1 2 2 3 4 - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the aggregating - function. + The resulting dtype will reflect the return value of the aggregating + function. >>> s.groupby([1, 1, 2, 2]).agg(lambda x: x.astype(float).min()) 1 1.0 @@ -705,8 +694,6 @@ def _wrap_applied_output( Parrot 25.0 Name: Max Speed, dtype: float64 - .. versionchanged:: 1.3.0 - The resulting dtype will reflect the return value of the passed ``func``, for example: @@ -1788,9 +1775,7 @@ class DataFrameGroupBy(GroupBy[DataFrame]): See :ref:`groupby.aggregate.named` for more. - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the aggregating function. + The resulting dtype will reflect the return value of the aggregating function. >>> df.groupby("A")[["B"]].agg(lambda x: x.astype(float).min()) B @@ -1881,10 +1866,8 @@ def aggregate(self, func=None, *args, engine=None, engine_kwargs=None, **kwargs) behavior or errors and are not supported. See :ref:`gotchas.udf-mutation` for more details. - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``, - see the examples below. + The resulting dtype will reflect the return value of the passed ``func``, + see the examples below. Examples -------- @@ -1964,10 +1947,8 @@ def aggregate(self, func=None, *args, engine=None, engine_kwargs=None, **kwargs) See :ref:`groupby.aggregate.named` for more. - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the aggregating - function. + The resulting dtype will reflect the return value of the aggregating + function. >>> df.groupby("A")[["B"]].agg(lambda x: x.astype(float).min()) B @@ -2326,8 +2307,6 @@ def _transform_general(self, func, engine, engine_kwargs, *args, **kwargs): 4 3.666667 4.0 5 4.000000 5.0 - .. versionchanged:: 1.3.0 - The resulting dtype will reflect the return value of the passed ``func``, for example: diff --git a/pandas/core/groupby/groupby.py b/pandas/core/groupby/groupby.py index 910268ebdfb8a..2b7b0a0396d54 100644 --- a/pandas/core/groupby/groupby.py +++ b/pandas/core/groupby/groupby.py @@ -406,10 +406,8 @@ class providing the base-class of operations. The group data and group index will be passed as numpy arrays to the JITed user defined function, and no alternative execution attempts will be tried. -.. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``, - see the examples below. +The resulting dtype will reflect the return value of the passed ``func``, +see the examples below. .. versionchanged:: 2.0.0 @@ -1518,11 +1516,8 @@ def apply(self, func, *args, include_groups: bool = False, **kwargs) -> NDFrameT Notes ----- - - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``, - see the examples below. + The resulting dtype will reflect the return value of the passed ``func``, + see the examples below. Functions that mutate the passed object can produce unexpected behavior or errors and are not supported. See :ref:`gotchas.udf-mutation` @@ -1562,9 +1557,7 @@ def apply(self, func, *args, include_groups: bool = False, **kwargs) -> NDFrameT its argument and returns a Series. `apply` combines the result for each group together into a new DataFrame. - .. versionchanged:: 1.3.0 - - The resulting dtype will reflect the return value of the passed ``func``. + The resulting dtype will reflect the return value of the passed ``func``. >>> g1[["B", "C"]].apply(lambda x: x.astype(float).max() - x.min()) B C @@ -5563,10 +5556,6 @@ def sample( If np.random.RandomState or np.random.Generator, use as given. Default ``None`` results in sampling with the current state of np.random. - .. versionchanged:: 1.4.0 - - np.random.Generator objects now accepted - Returns ------- Series or DataFrame diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 904de6a012671..f7884cc25e66e 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -1953,18 +1953,13 @@ def set_names(self, names, *, level=None, inplace: bool = False) -> Self | None: Parameters ---------- - names : Hashable or a sequence of the previous or dict-like for MultiIndex Name(s) to set. - .. versionchanged:: 1.3.0 - level : int, Hashable or a sequence of the previous, optional If the index is a MultiIndex and names is not dict-like, level(s) to set (None for all levels). Otherwise level must be None. - .. versionchanged:: 1.3.0 - inplace : bool, default False Modifies the object directly, instead of creating a new Index or MultiIndex. diff --git a/pandas/core/series.py b/pandas/core/series.py index 1a8645cf1815d..c75973e2897f1 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -5928,8 +5928,6 @@ def between( inclusive : {"both", "neither", "left", "right"} Include boundaries. Whether to set each bound as closed or open. - .. versionchanged:: 1.3.0 - Returns ------- Series diff --git a/pandas/core/shared_docs.py b/pandas/core/shared_docs.py index bf30c215596f2..5c6a029bed7c4 100644 --- a/pandas/core/shared_docs.py +++ b/pandas/core/shared_docs.py @@ -139,13 +139,6 @@ when the result's index (and column) labels match the inputs, and are included otherwise. - .. versionchanged:: 1.5.0 - - Warns that ``group_keys`` will no longer be ignored when the - result from ``apply`` is a like-indexed Series or DataFrame. - Specify ``group_keys`` explicitly to include the group keys or - not. - .. versionchanged:: 2.0.0 ``group_keys`` now defaults to ``True``. @@ -620,9 +613,6 @@ 4 None dtype: object - .. versionchanged:: 1.4.0 - Previously the explicit ``None`` was silently ignored. - When ``regex=True``, ``value`` is not ``None`` and `to_replace` is a string, the replacement will be applied in all columns of the DataFrame. diff --git a/pandas/io/common.py b/pandas/io/common.py index b192e3bcc8e68..9d53dd22f7b2c 100644 --- a/pandas/io/common.py +++ b/pandas/io/common.py @@ -317,8 +317,6 @@ def _get_filepath_or_buffer( or buffer {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - encoding : the encoding to use to decode bytes, default is 'utf-8' mode : str, optional @@ -568,8 +566,6 @@ def infer_compression( File path or object. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - Returns ------- string or None @@ -698,8 +694,6 @@ def get_handle( Passing compression options as keys in dict is supported for compression modes 'gzip', 'bz2', 'zstd' and 'zip'. - .. versionchanged:: 1.4.0 Zstandard support. - memory_map : bool, default False See parsers._parser_params for more information. Only used by read_csv. is_text : bool, default True diff --git a/pandas/io/excel/_base.py b/pandas/io/excel/_base.py index 48028c54a1773..d1ae59e0e5866 100644 --- a/pandas/io/excel/_base.py +++ b/pandas/io/excel/_base.py @@ -997,12 +997,6 @@ class ExcelWriter(Generic[_WorkbookT]): * overlay: Write contents to the existing sheet without first removing, but possibly over top of, the existing contents. - .. versionadded:: 1.3.0 - - .. versionchanged:: 1.4.0 - - Added ``overlay`` option - engine_kwargs : dict, optional Keyword arguments to be passed into the engine. These will be passed to the following functions of the respective engines: @@ -1500,19 +1494,17 @@ class ExcelFile: - ``calamine`` supports Excel (.xls, .xlsx, .xlsm, .xlsb) and OpenDocument (.ods) file formats. - .. versionchanged:: 1.2.0 - - The engine `xlrd `_ - now only supports old-style ``.xls`` files. - When ``engine=None``, the following logic will be - used to determine the engine: - - - If ``path_or_buffer`` is an OpenDocument format (.odf, .ods, .odt), - then `odf `_ will be used. - - Otherwise if ``path_or_buffer`` is an xls format, - ``xlrd`` will be used. - - Otherwise if ``path_or_buffer`` is in xlsb format, - `pyxlsb `_ will be used. + The engine `xlrd `_ + now only supports old-style ``.xls`` files. + When ``engine=None``, the following logic will be + used to determine the engine: + + - If ``path_or_buffer`` is an OpenDocument format (.odf, .ods, .odt), + then `odf `_ will be used. + - Otherwise if ``path_or_buffer`` is an xls format, + ``xlrd`` will be used. + - Otherwise if ``path_or_buffer`` is in xlsb format, + `pyxlsb `_ will be used. .. versionadded:: 1.3.0 diff --git a/pandas/io/formats/style.py b/pandas/io/formats/style.py index 9bf497af77855..1132981915177 100644 --- a/pandas/io/formats/style.py +++ b/pandas/io/formats/style.py @@ -130,8 +130,6 @@ class Styler(StylerRenderer): precision : int, optional Precision to round floats to. If not given defaults to ``pandas.options.styler.format.precision``. - - .. versionchanged:: 1.4.0 table_styles : list-like, default None List of {selector: (attr, value)} dicts; see Notes. uuid : str, default None @@ -718,8 +716,6 @@ def to_latex( Set to `True` to add \\toprule, \\midrule and \\bottomrule from the {booktabs} LaTeX package. Defaults to ``pandas.options.styler.latex.hrules``, which is `False`. - - .. versionchanged:: 1.4.0 clines : str, optional Use to control adding \\cline commands for the index labels separation. Possible values are: @@ -757,8 +753,6 @@ def to_latex( at the top or bottom using the multirow package. If not given defaults to ``pandas.options.styler.latex.multirow_align``, which is `"c"`. If "naive" is given renders without multirow. - - .. versionchanged:: 1.4.0 multicol_align : {"r", "c", "l", "naive-l", "naive-r"}, optional If sparsifying hierarchical MultiIndex columns whether to align text at the left, centrally, or at the right. If not given defaults to @@ -767,8 +761,6 @@ def to_latex( Pipe decorators can also be added to non-naive values to draw vertical rules, e.g. "\|r" will draw a rule on the left side of right aligned merged cells. - - .. versionchanged:: 1.4.0 siunitx : bool, default False Set to ``True`` to structure LaTeX compatible with the {siunitx} package. environment : str, optional @@ -776,8 +768,6 @@ def to_latex( If 'longtable' is specified then a more suitable template is rendered. If not given defaults to ``pandas.options.styler.latex.environment``, which is `None`. - - .. versionadded:: 1.4.0 encoding : str, optional Character encoding setting. Defaults to ``pandas.options.styler.render.encoding``, which is "utf-8". @@ -1961,11 +1951,6 @@ def apply( ``func`` should take a DataFrame if ``axis`` is ``None`` and return either an ndarray with the same shape or a DataFrame, not necessarily of the same shape, with valid index and columns labels considering ``subset``. - - .. versionchanged:: 1.3.0 - - .. versionchanged:: 1.4.0 - axis : {0 or 'index', 1 or 'columns', None}, default 0 Apply to each column (``axis=0`` or ``'index'``), to each row (``axis=1`` or ``'columns'``), or to the entire DataFrame at once @@ -3239,8 +3224,6 @@ def bar( """ Draw bar chart in the cell backgrounds. - .. versionchanged:: 1.4.0 - Parameters ---------- %(subset)s @@ -3281,8 +3264,6 @@ def bar( If a callable should take a 1d or 2d array and return a scalar. - .. versionchanged:: 1.4.0 - vmin : float, optional Minimum bar value, defining the left hand limit of the bar drawing range, lower values are clipped to `vmin`. @@ -3295,8 +3276,6 @@ def bar( The base CSS of the cell that is extended to add the bar chart. Defaults to `"width: 10em;"`. - .. versionadded:: 1.4.0 - Returns ------- Styler @@ -3767,22 +3746,15 @@ def from_custom_template( Uses custom templates and Jinja environment. - .. versionchanged:: 1.3.0 - Parameters ---------- searchpath : str or list Path or paths of directories containing the templates. html_table : str Name of your custom template to replace the html_table template. - - .. versionadded:: 1.3.0 - html_style : str Name of your custom template to replace the html_style template. - .. versionadded:: 1.3.0 - Returns ------- MyStyler : subclass of Styler diff --git a/pandas/io/formats/xml.py b/pandas/io/formats/xml.py index febf43b9a1018..ce76a1738f0e3 100644 --- a/pandas/io/formats/xml.py +++ b/pandas/io/formats/xml.py @@ -91,8 +91,6 @@ class _BaseXMLFormatter: {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - {storage_options} See also diff --git a/pandas/io/json/_json.py b/pandas/io/json/_json.py index bfa61253c9c1f..5b0ecc2be5cdb 100644 --- a/pandas/io/json/_json.py +++ b/pandas/io/json/_json.py @@ -655,8 +655,6 @@ def read_json( If this is None, the file will be read into memory all at once. {decompression_options} - .. versionchanged:: 1.4.0 Zstandard support. - nrows : int, optional The number of lines from the line-delimited jsonfile that has to be read. This can only be passed if `lines=True`. diff --git a/pandas/io/pickle.py b/pandas/io/pickle.py index 19afa26d88c77..df1c35e0dabee 100644 --- a/pandas/io/pickle.py +++ b/pandas/io/pickle.py @@ -59,8 +59,6 @@ def to_pickle( Also accepts URL. URL has to be of S3 or GCS. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - protocol : int Int which indicates which protocol should be used by the pickler, default HIGHEST_PROTOCOL (see [1], paragraph 12.1.2). The possible @@ -145,8 +143,6 @@ def read_pickle( {decompression_options} - .. versionchanged:: 1.4.0 Zstandard support. - {storage_options} Returns diff --git a/pandas/io/stata.py b/pandas/io/stata.py index 1f953650365ef..a2b0463ada7b0 100644 --- a/pandas/io/stata.py +++ b/pandas/io/stata.py @@ -2427,8 +2427,6 @@ class StataWriter(StataParser): .. versionadded:: 1.5.0 Added support for `.tar` files. - .. versionchanged:: 1.4.0 Zstandard support. - storage_options : dict, optional Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc. For HTTP(S) URLs the key-value pairs @@ -3415,8 +3413,6 @@ class StataWriter117(StataWriter): characters, and either frequently repeated or sparse. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - value_labels : dict of dicts Dictionary containing columns as keys and dictionaries of column value to labels as values. The combined length of all labels for a single @@ -3809,8 +3805,6 @@ class StataWriterUTF8(StataWriter117): for storing larger DataFrames. {compression_options} - .. versionchanged:: 1.4.0 Zstandard support. - value_labels : dict of dicts Dictionary containing columns as keys and dictionaries of column value to labels as values. The combined length of all labels for a single diff --git a/pandas/io/xml.py b/pandas/io/xml.py index 53c0b07f3d90f..d041b5a99f2e8 100644 --- a/pandas/io/xml.py +++ b/pandas/io/xml.py @@ -124,8 +124,6 @@ class _XMLFrameParser: {decompression_options} - .. versionchanged:: 1.4.0 Zstandard support. - {storage_options} See also @@ -963,8 +961,6 @@ def read_xml( {decompression_options} - .. versionchanged:: 1.4.0 Zstandard support. - {storage_options} dtype_backend : {{'numpy_nullable', 'pyarrow'}} diff --git a/pandas/plotting/_core.py b/pandas/plotting/_core.py index c9dd179fac6e0..a8705baaa0e85 100644 --- a/pandas/plotting/_core.py +++ b/pandas/plotting/_core.py @@ -1600,10 +1600,6 @@ def box(self, by: IndexLabel | None = None, **kwargs) -> PlotAccessor: by : str or sequence Column in the DataFrame to group by. - .. versionchanged:: 1.4.0 - - Previously, `by` is silently ignore and makes no groupings - **kwargs Additional keywords are documented in :meth:`DataFrame.plot`. @@ -1634,8 +1630,6 @@ def box(self, by: IndexLabel | None = None, **kwargs) -> PlotAccessor: You can also generate groupings if you specify the `by` parameter (which can take a column name, or a list or tuple of column names): - .. versionchanged:: 1.4.0 - .. plot:: :context: close-figs @@ -1660,11 +1654,6 @@ def hist( ---------- by : str or sequence, optional Column in the DataFrame to group by. - - .. versionchanged:: 1.4.0 - - Previously, `by` is silently ignore and makes no groupings - bins : int, default 10 Number of histogram bins to be used. **kwargs