Skip to content

Commit 89ffe3f

Browse files
Merge remote-tracking branch 'upstream/main' into bisect
2 parents a77bbf3 + 9b4f03e commit 89ffe3f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+600
-214
lines changed

.github/workflows/code-checks.yml

+1-5
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,7 @@ jobs:
141141
run: |
142142
cd asv_bench
143143
asv machine --yes
144-
# TODO add `--durations` when we start using asv >= 0.5 (#46598)
145-
asv run --quick --dry-run --python=same | sed "/failed$/ s/^/##[error]/" | tee benchmarks.log
146-
if grep "failed" benchmarks.log > /dev/null ; then
147-
exit 1
148-
fi
144+
asv run --quick --dry-run --strict --durations=30 --python=same
149145
150146
build_docker_dev_environment:
151147
name: Build Docker Dev Environment

.pre-commit-config.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ repos:
7070
- id: rst-inline-touching-normal
7171
types: [text] # overwrite types: [rst]
7272
types_or: [python, rst]
73+
- repo: https://github.com/sphinx-contrib/sphinx-lint
74+
rev: v0.2
75+
hooks:
76+
- id: sphinx-lint
7377
- repo: https://github.com/asottile/yesqa
7478
rev: v1.3.0
7579
hooks:

LICENSES/OTHER

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
numpydoc license
2-
----------------
3-
4-
The numpydoc license is in pandas/doc/sphinxext/LICENSE.txt
5-
61
Bottleneck license
72
------------------
83

@@ -77,4 +72,4 @@ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
7772
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
7873
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
7974
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
80-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
75+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ci/deps/actions-38-downstream_compat.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ dependencies:
6060
- cftime
6161
- dask
6262
- ipython
63-
- geopandas
63+
- geopandas-base
6464
- seaborn
6565
- scikit-learn
6666
- statsmodels

doc/source/development/contributing_codebase.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ In some cases you may be tempted to use ``cast`` from the typing module when you
223223
...
224224
else: # Reasonably only str objects would reach this but...
225225
obj = cast(str, obj) # Mypy complains without this!
226-
return obj.upper()
226+
return obj.upper()
227227
228228
The limitation here is that while a human can reasonably understand that ``is_number`` would catch the ``int`` and ``float`` types mypy cannot make that same inference just yet (see `mypy #5206 <https://github.com/python/mypy/issues/5206>`_. While the above works, the use of ``cast`` is **strongly discouraged**. Where applicable a refactor of the code to appease static analysis is preferable
229229

doc/source/development/contributing_environment.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ You will need `Build Tools for Visual Studio 2019
8585
<https://visualstudio.microsoft.com/downloads/>`_.
8686

8787
.. warning::
88-
You DO NOT need to install Visual Studio 2019.
89-
You only need "Build Tools for Visual Studio 2019" found by
90-
scrolling down to "All downloads" -> "Tools for Visual Studio 2019".
91-
In the installer, select the "C++ build tools" workload.
88+
You DO NOT need to install Visual Studio 2019.
89+
You only need "Build Tools for Visual Studio 2019" found by
90+
scrolling down to "All downloads" -> "Tools for Visual Studio 2019".
91+
In the installer, select the "C++ build tools" workload.
9292

9393
You can install the necessary components on the commandline using
9494
`vs_buildtools.exe <https://download.visualstudio.microsoft.com/download/pr/9a26f37e-6001-429b-a5db-c5455b93953c/460d80ab276046de2455a4115cc4e2f1e6529c9e6cb99501844ecafd16c619c4/vs_BuildTools.exe>`_:

doc/source/ecosystem.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -540,15 +540,15 @@ Pandas-Genomics provides extension types, extension arrays, and extension access
540540
`Pint-Pandas`_
541541
~~~~~~~~~~~~~~
542542

543-
``Pint-Pandas <https://github.com/hgrecco/pint-pandas>`` provides an extension type for
543+
`Pint-Pandas <https://github.com/hgrecco/pint-pandas>`_ provides an extension type for
544544
storing numeric arrays with units. These arrays can be stored inside pandas'
545545
Series and DataFrame. Operations between Series and DataFrame columns which
546546
use pint's extension array are then units aware.
547547

548548
`Text Extensions for Pandas`_
549549
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550550

551-
``Text Extensions for Pandas <https://ibm.biz/text-extensions-for-pandas>``
551+
`Text Extensions for Pandas <https://ibm.biz/text-extensions-for-pandas>`_
552552
provides extension types to cover common data structures for representing natural language
553553
data, plus library integrations that convert the outputs of popular natural language
554554
processing libraries into Pandas DataFrames.

doc/source/reference/series.rst

+1
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ Datetime methods
342342
:toctree: api/
343343
:template: autosummary/accessor_method.rst
344344

345+
Series.dt.isocalendar
345346
Series.dt.to_period
346347
Series.dt.to_pydatetime
347348
Series.dt.tz_localize

doc/source/user_guide/cookbook.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ Fill forward a reversed timeseries
423423
)
424424
df.loc[df.index[3], "A"] = np.nan
425425
df
426-
df.reindex(df.index[::-1]).ffill()
426+
df.bfill()
427427
428428
`cumsum reset at NaN values
429429
<https://stackoverflow.com/questions/18196811/cumsum-reset-at-nan>`__

doc/source/user_guide/dsintro.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ Boolean operators operate element-wise as well:
678678
Transposing
679679
~~~~~~~~~~~
680680

681-
To transpose, access the ``T`` attribute or :meth:`DataFrame.transpose``,
681+
To transpose, access the ``T`` attribute or :meth:`DataFrame.transpose`,
682682
similar to an ndarray:
683683

684684
.. ipython:: python

doc/source/user_guide/groupby.rst

+13-13
Original file line numberDiff line numberDiff line change
@@ -539,19 +539,19 @@ Some common aggregating functions are tabulated below:
539539
:widths: 20, 80
540540
:delim: ;
541541

542-
:meth:`~pd.core.groupby.DataFrameGroupBy.mean`;Compute mean of groups
543-
:meth:`~pd.core.groupby.DataFrameGroupBy.sum`;Compute sum of group values
544-
:meth:`~pd.core.groupby.DataFrameGroupBy.size`;Compute group sizes
545-
:meth:`~pd.core.groupby.DataFrameGroupBy.count`;Compute count of group
546-
:meth:`~pd.core.groupby.DataFrameGroupBy.std`;Standard deviation of groups
547-
:meth:`~pd.core.groupby.DataFrameGroupBy.var`;Compute variance of groups
548-
:meth:`~pd.core.groupby.DataFrameGroupBy.sem`;Standard error of the mean of groups
549-
:meth:`~pd.core.groupby.DataFrameGroupBy.describe`;Generates descriptive statistics
550-
:meth:`~pd.core.groupby.DataFrameGroupBy.first`;Compute first of group values
551-
:meth:`~pd.core.groupby.DataFrameGroupBy.last`;Compute last of group values
552-
:meth:`~pd.core.groupby.DataFrameGroupBy.nth`;Take nth value, or a subset if n is a list
553-
:meth:`~pd.core.groupby.DataFrameGroupBy.min`;Compute min of group values
554-
:meth:`~pd.core.groupby.DataFrameGroupBy.max`;Compute max of group values
542+
:meth:`~pd.core.groupby.DataFrameGroupBy.mean`;Compute mean of groups
543+
:meth:`~pd.core.groupby.DataFrameGroupBy.sum`;Compute sum of group values
544+
:meth:`~pd.core.groupby.DataFrameGroupBy.size`;Compute group sizes
545+
:meth:`~pd.core.groupby.DataFrameGroupBy.count`;Compute count of group
546+
:meth:`~pd.core.groupby.DataFrameGroupBy.std`;Standard deviation of groups
547+
:meth:`~pd.core.groupby.DataFrameGroupBy.var`;Compute variance of groups
548+
:meth:`~pd.core.groupby.DataFrameGroupBy.sem`;Standard error of the mean of groups
549+
:meth:`~pd.core.groupby.DataFrameGroupBy.describe`;Generates descriptive statistics
550+
:meth:`~pd.core.groupby.DataFrameGroupBy.first`;Compute first of group values
551+
:meth:`~pd.core.groupby.DataFrameGroupBy.last`;Compute last of group values
552+
:meth:`~pd.core.groupby.DataFrameGroupBy.nth`;Take nth value, or a subset if n is a list
553+
:meth:`~pd.core.groupby.DataFrameGroupBy.min`;Compute min of group values
554+
:meth:`~pd.core.groupby.DataFrameGroupBy.max`;Compute max of group values
555555

556556

557557
The aggregating functions above will exclude NA values. Any function which

doc/source/user_guide/io.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -5695,9 +5695,9 @@ for an explanation of how the database connection is handled.
56955695
56965696
.. warning::
56975697

5698-
When you open a connection to a database you are also responsible for closing it.
5699-
Side effects of leaving a connection open may include locking the database or
5700-
other breaking behaviour.
5698+
When you open a connection to a database you are also responsible for closing it.
5699+
Side effects of leaving a connection open may include locking the database or
5700+
other breaking behaviour.
57015701

57025702
Writing DataFrames
57035703
''''''''''''''''''

doc/source/user_guide/timeseries.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -2405,9 +2405,9 @@ you can use the ``tz_convert`` method.
24052405
24062406
.. warning::
24072407

2408-
Be wary of conversions between libraries. For some time zones, ``pytz`` and ``dateutil`` have different
2409-
definitions of the zone. This is more of a problem for unusual time zones than for
2410-
'standard' zones like ``US/Eastern``.
2408+
Be wary of conversions between libraries. For some time zones, ``pytz`` and ``dateutil`` have different
2409+
definitions of the zone. This is more of a problem for unusual time zones than for
2410+
'standard' zones like ``US/Eastern``.
24112411

24122412
.. warning::
24132413

doc/source/user_guide/window.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -624,13 +624,13 @@ average of ``3, NaN, 5`` would be calculated as
624624

625625
.. math::
626626
627-
\frac{(1-\alpha)^2 \cdot 3 + 1 \cdot 5}{(1-\alpha)^2 + 1}.
627+
\frac{(1-\alpha)^2 \cdot 3 + 1 \cdot 5}{(1-\alpha)^2 + 1}.
628628
629629
Whereas if ``ignore_na=True``, the weighted average would be calculated as
630630

631631
.. math::
632632
633-
\frac{(1-\alpha) \cdot 3 + 1 \cdot 5}{(1-\alpha) + 1}.
633+
\frac{(1-\alpha) \cdot 3 + 1 \cdot 5}{(1-\alpha) + 1}.
634634
635635
The :meth:`~Ewm.var`, :meth:`~Ewm.std`, and :meth:`~Ewm.cov` functions have a ``bias`` argument,
636636
specifying whether the result should contain biased or unbiased statistics.

doc/source/whatsnew/v0.15.0.rst

+24-24
Original file line numberDiff line numberDiff line change
@@ -462,15 +462,15 @@ Rolling/expanding moments improvements
462462
463463
.. code-block:: ipython
464464
465-
In [51]: ewma(s, com=3., min_periods=2)
466-
Out[51]:
467-
0 NaN
468-
1 NaN
469-
2 1.000000
470-
3 1.000000
471-
4 1.571429
472-
5 2.189189
473-
dtype: float64
465+
In [51]: pd.ewma(s, com=3., min_periods=2)
466+
Out[51]:
467+
0 NaN
468+
1 NaN
469+
2 1.000000
470+
3 1.000000
471+
4 1.571429
472+
5 2.189189
473+
dtype: float64
474474
475475
New behavior (note values start at index ``4``, the location of the 2nd (since ``min_periods=2``) non-empty value):
476476

@@ -557,21 +557,21 @@ Rolling/expanding moments improvements
557557
558558
.. code-block:: ipython
559559
560-
In [89]: ewmvar(s, com=2., bias=False)
561-
Out[89]:
562-
0 -2.775558e-16
563-
1 3.000000e-01
564-
2 9.556787e-01
565-
3 3.585799e+00
566-
dtype: float64
567-
568-
In [90]: ewmvar(s, com=2., bias=False) / ewmvar(s, com=2., bias=True)
569-
Out[90]:
570-
0 1.25
571-
1 1.25
572-
2 1.25
573-
3 1.25
574-
dtype: float64
560+
In [89]: pd.ewmvar(s, com=2., bias=False)
561+
Out[89]:
562+
0 -2.775558e-16
563+
1 3.000000e-01
564+
2 9.556787e-01
565+
3 3.585799e+00
566+
dtype: float64
567+
568+
In [90]: pd.ewmvar(s, com=2., bias=False) / pd.ewmvar(s, com=2., bias=True)
569+
Out[90]:
570+
0 1.25
571+
1 1.25
572+
2 1.25
573+
3 1.25
574+
dtype: float64
575575
576576
Note that entry ``0`` is approximately 0, and the debiasing factors are a constant 1.25.
577577
By comparison, the following 0.15.0 results have a ``NaN`` for entry ``0``,

doc/source/whatsnew/v0.18.1.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ can return a valid boolean indexer or anything which is valid for these indexer'
149149
# callable returns list of labels
150150
df.loc[lambda x: [1, 2], lambda x: ["A", "B"]]
151151
152-
Indexing with``[]``
153-
"""""""""""""""""""
152+
Indexing with ``[]``
153+
""""""""""""""""""""
154154

155155
Finally, you can use a callable in ``[]`` indexing of Series, DataFrame and Panel.
156156
The callable must return a valid input for ``[]`` indexing depending on its

doc/source/whatsnew/v0.19.0.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -1553,7 +1553,7 @@ Bug fixes
15531553
- Bug in invalid datetime parsing in ``to_datetime`` and ``DatetimeIndex`` may raise ``TypeError`` rather than ``ValueError`` (:issue:`11169`, :issue:`11287`)
15541554
- Bug in ``Index`` created with tz-aware ``Timestamp`` and mismatched ``tz`` option incorrectly coerces timezone (:issue:`13692`)
15551555
- Bug in ``DatetimeIndex`` with nanosecond frequency does not include timestamp specified with ``end`` (:issue:`13672`)
1556-
- Bug in ```Series`` when setting a slice with a ``np.timedelta64`` (:issue:`14155`)
1556+
- Bug in ``Series`` when setting a slice with a ``np.timedelta64`` (:issue:`14155`)
15571557
- Bug in ``Index`` raises ``OutOfBoundsDatetime`` if ``datetime`` exceeds ``datetime64[ns]`` bounds, rather than coercing to ``object`` dtype (:issue:`13663`)
15581558
- Bug in ``Index`` may ignore specified ``datetime64`` or ``timedelta64`` passed as ``dtype`` (:issue:`13981`)
15591559
- Bug in ``RangeIndex`` can be created without no arguments rather than raises ``TypeError`` (:issue:`13793`)

doc/source/whatsnew/v0.21.1.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Indexing
125125
IO
126126
^^
127127

128-
- Bug in class:`~pandas.io.stata.StataReader` not converting date/time columns with display formatting addressed (:issue:`17990`). Previously columns with display formatting were normally left as ordinal numbers and not converted to datetime objects.
128+
- Bug in :class:`~pandas.io.stata.StataReader` not converting date/time columns with display formatting addressed (:issue:`17990`). Previously columns with display formatting were normally left as ordinal numbers and not converted to datetime objects.
129129
- Bug in :func:`read_csv` when reading a compressed UTF-16 encoded file (:issue:`18071`)
130130
- Bug in :func:`read_csv` for handling null values in index columns when specifying ``na_filter=False`` (:issue:`5239`)
131131
- Bug in :func:`read_csv` when reading numeric category fields with high cardinality (:issue:`18186`)

doc/source/whatsnew/v0.23.0.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -1126,7 +1126,7 @@ Removal of prior version deprecations/changes
11261126
- The ``Panel`` class has dropped the ``to_long`` and ``toLong`` methods (:issue:`19077`)
11271127
- The options ``display.line_with`` and ``display.height`` are removed in favor of ``display.width`` and ``display.max_rows`` respectively (:issue:`4391`, :issue:`19107`)
11281128
- The ``labels`` attribute of the ``Categorical`` class has been removed in favor of :attr:`Categorical.codes` (:issue:`7768`)
1129-
- The ``flavor`` parameter have been removed from func:`to_sql` method (:issue:`13611`)
1129+
- The ``flavor`` parameter have been removed from :func:`to_sql` method (:issue:`13611`)
11301130
- The modules ``pandas.tools.hashing`` and ``pandas.util.hashing`` have been removed (:issue:`16223`)
11311131
- The top-level functions ``pd.rolling_*``, ``pd.expanding_*`` and ``pd.ewm*`` have been removed (Deprecated since v0.18).
11321132
Instead, use the DataFrame/Series methods :attr:`~DataFrame.rolling`, :attr:`~DataFrame.expanding` and :attr:`~DataFrame.ewm` (:issue:`18723`)

doc/source/whatsnew/v0.25.0.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,7 @@ Indexing
11211121
- Bug in which :meth:`DataFrame.to_csv` caused a segfault for a reindexed data frame, when the indices were single-level :class:`MultiIndex` (:issue:`26303`).
11221122
- Fixed bug where assigning a :class:`arrays.PandasArray` to a :class:`pandas.core.frame.DataFrame` would raise error (:issue:`26390`)
11231123
- Allow keyword arguments for callable local reference used in the :meth:`DataFrame.query` string (:issue:`26426`)
1124-
- Fixed a ``KeyError`` when indexing a :class:`MultiIndex`` level with a list containing exactly one label, which is missing (:issue:`27148`)
1124+
- Fixed a ``KeyError`` when indexing a :class:`MultiIndex` level with a list containing exactly one label, which is missing (:issue:`27148`)
11251125
- Bug which produced ``AttributeError`` on partial matching :class:`Timestamp` in a :class:`MultiIndex` (:issue:`26944`)
11261126
- Bug in :class:`Categorical` and :class:`CategoricalIndex` with :class:`Interval` values when using the ``in`` operator (``__contains``) with objects that are not comparable to the values in the ``Interval`` (:issue:`23705`)
11271127
- Bug in :meth:`DataFrame.loc` and :meth:`DataFrame.iloc` on a :class:`DataFrame` with a single timezone-aware datetime64[ns] column incorrectly returning a scalar instead of a :class:`Series` (:issue:`27110`)

doc/source/whatsnew/v0.7.0.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ been added:
190190
:header: "Method","Description"
191191
:widths: 40,60
192192

193-
``Series.iget_value(i)``, Retrieve value stored at location ``i``
194-
``Series.iget(i)``, Alias for ``iget_value``
195-
``DataFrame.irow(i)``, Retrieve the ``i``-th row
196-
``DataFrame.icol(j)``, Retrieve the ``j``-th column
197-
"``DataFrame.iget_value(i, j)``", Retrieve the value at row ``i`` and column ``j``
193+
``Series.iget_value(i)``, Retrieve value stored at location ``i``
194+
``Series.iget(i)``, Alias for ``iget_value``
195+
``DataFrame.irow(i)``, Retrieve the ``i``-th row
196+
``DataFrame.icol(j)``, Retrieve the ``j``-th column
197+
"``DataFrame.iget_value(i, j)``", Retrieve the value at row ``i`` and column ``j``
198198

199199
API tweaks regarding label-based slicing
200200
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

doc/source/whatsnew/v0.9.1.rst

+22-22
Original file line numberDiff line numberDiff line change
@@ -54,44 +54,44 @@ New features
5454
- DataFrame has new ``where`` and ``mask`` methods to select values according to a
5555
given boolean mask (:issue:`2109`, :issue:`2151`)
5656

57-
DataFrame currently supports slicing via a boolean vector the same length as the DataFrame (inside the ``[]``).
58-
The returned DataFrame has the same number of columns as the original, but is sliced on its index.
57+
DataFrame currently supports slicing via a boolean vector the same length as the DataFrame (inside the ``[]``).
58+
The returned DataFrame has the same number of columns as the original, but is sliced on its index.
5959

6060
.. ipython:: python
6161
62-
df = DataFrame(np.random.randn(5, 3), columns = ['A','B','C'])
62+
df = pd.DataFrame(np.random.randn(5, 3), columns=['A', 'B', 'C'])
6363
64-
df
64+
df
6565
66-
df[df['A'] > 0]
66+
df[df['A'] > 0]
6767
68-
If a DataFrame is sliced with a DataFrame based boolean condition (with the same size as the original DataFrame),
69-
then a DataFrame the same size (index and columns) as the original is returned, with
70-
elements that do not meet the boolean condition as ``NaN``. This is accomplished via
71-
the new method ``DataFrame.where``. In addition, ``where`` takes an optional ``other`` argument for replacement.
68+
If a DataFrame is sliced with a DataFrame based boolean condition (with the same size as the original DataFrame),
69+
then a DataFrame the same size (index and columns) as the original is returned, with
70+
elements that do not meet the boolean condition as ``NaN``. This is accomplished via
71+
the new method ``DataFrame.where``. In addition, ``where`` takes an optional ``other`` argument for replacement.
7272

73-
.. ipython:: python
73+
.. ipython:: python
7474
75-
df[df>0]
75+
df[df > 0]
7676
77-
df.where(df>0)
77+
df.where(df > 0)
7878
79-
df.where(df>0,-df)
79+
df.where(df > 0, -df)
8080
81-
Furthermore, ``where`` now aligns the input boolean condition (ndarray or DataFrame), such that partial selection
82-
with setting is possible. This is analogous to partial setting via ``.ix`` (but on the contents rather than the axis labels)
81+
Furthermore, ``where`` now aligns the input boolean condition (ndarray or DataFrame), such that partial selection
82+
with setting is possible. This is analogous to partial setting via ``.ix`` (but on the contents rather than the axis labels)
8383

84-
.. ipython:: python
84+
.. ipython:: python
8585
86-
df2 = df.copy()
87-
df2[ df2[1:4] > 0 ] = 3
88-
df2
86+
df2 = df.copy()
87+
df2[df2[1:4] > 0] = 3
88+
df2
8989
90-
``DataFrame.mask`` is the inverse boolean operation of ``where``.
90+
``DataFrame.mask`` is the inverse boolean operation of ``where``.
9191

92-
.. ipython:: python
92+
.. ipython:: python
9393
94-
df.mask(df<=0)
94+
df.mask(df <= 0)
9595
9696
- Enable referencing of Excel columns by their column names (:issue:`1936`)
9797

doc/source/whatsnew/v1.0.0.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ Use :meth:`arrays.IntegerArray.to_numpy` with an explicit ``na_value`` instead.
525525
526526
a.to_numpy(dtype="float", na_value=np.nan)
527527
528-
**Reductions can return ``pd.NA``**
528+
**Reductions can return** ``pd.NA``
529529

530530
When performing a reduction such as a sum with ``skipna=False``, the result
531531
will now be ``pd.NA`` instead of ``np.nan`` in presence of missing values

0 commit comments

Comments
 (0)