Skip to content

Commit 6f5e923

Browse files
authored
Merge pull request #209 from pandas-dev/master
Sync Fork from Upstream Repo
2 parents 6612151 + 50a59ba commit 6f5e923

24 files changed

+443
-362
lines changed

doc/source/whatsnew/v1.3.0.rst

+28-23
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.. _whatsnew_130:
22

3-
What's new in 1.3.0 (??)
4-
------------------------
3+
What's new in 1.3.0 (June ??)
4+
-----------------------------
55

66
These are the changes in pandas 1.3.0. See :ref:`release` for a full changelog
77
including other versions of pandas.
@@ -124,7 +124,7 @@ which has been revised and improved (:issue:`39720`, :issue:`39317`, :issue:`404
124124
- The methods :meth:`.Styler.highlight_null`, :meth:`.Styler.highlight_min`, and :meth:`.Styler.highlight_max` now allow custom CSS highlighting instead of the default background coloring (:issue:`40242`)
125125
- :meth:`.Styler.apply` now accepts functions that return an ``ndarray`` when ``axis=None``, making it now consistent with the ``axis=0`` and ``axis=1`` behavior (:issue:`39359`)
126126
- When incorrectly formatted CSS is given via :meth:`.Styler.apply` or :meth:`.Styler.applymap`, an error is now raised upon rendering (:issue:`39660`)
127-
- :meth:`.Styler.format` now accepts the keyword argument ``escape`` for optional HTML and LaTex escaping (:issue:`40388`, :issue:`41619`)
127+
- :meth:`.Styler.format` now accepts the keyword argument ``escape`` for optional HTML and LaTeX escaping (:issue:`40388`, :issue:`41619`)
128128
- :meth:`.Styler.background_gradient` has gained the argument ``gmap`` to supply a specific gradient map for shading (:issue:`22727`)
129129
- :meth:`.Styler.clear` now clears :attr:`Styler.hidden_index` and :attr:`Styler.hidden_columns` as well (:issue:`40484`)
130130
- Added the method :meth:`.Styler.highlight_between` (:issue:`39821`)
@@ -252,7 +252,7 @@ Other enhancements
252252
- :func:`to_numeric` now supports downcasting of nullable ``ExtensionDtype`` objects (:issue:`33013`)
253253
- Added support for dict-like names in :class:`MultiIndex.set_names` and :class:`MultiIndex.rename` (:issue:`20421`)
254254
- :func:`read_excel` can now auto-detect .xlsb files and older .xls files (:issue:`35416`, :issue:`41225`)
255-
- :class:`ExcelWriter` now accepts an ``if_sheet_exists`` parameter to control the behaviour of append mode when writing to existing sheets (:issue:`40230`)
255+
- :class:`ExcelWriter` now accepts an ``if_sheet_exists`` parameter to control the behavior of append mode when writing to existing sheets (:issue:`40230`)
256256
- :meth:`.Rolling.sum`, :meth:`.Expanding.sum`, :meth:`.Rolling.mean`, :meth:`.Expanding.mean`, :meth:`.ExponentialMovingWindow.mean`, :meth:`.Rolling.median`, :meth:`.Expanding.median`, :meth:`.Rolling.max`, :meth:`.Expanding.max`, :meth:`.Rolling.min`, and :meth:`.Expanding.min` now support `Numba <http://numba.pydata.org/>`_ execution with the ``engine`` keyword (:issue:`38895`, :issue:`41267`)
257257
- :meth:`DataFrame.apply` can now accept NumPy unary operators as strings, e.g. ``df.apply("sqrt")``, which was already the case for :meth:`Series.apply` (:issue:`39116`)
258258
- :meth:`DataFrame.apply` can now accept non-callable DataFrame properties as strings, e.g. ``df.apply("size")``, which was already the case for :meth:`Series.apply` (:issue:`39116`)
@@ -276,7 +276,9 @@ Other enhancements
276276
- Add keyword ``dropna`` to :meth:`DataFrame.value_counts` to allow counting rows that include ``NA`` values (:issue:`41325`)
277277
- :meth:`Series.replace` will now cast results to ``PeriodDtype`` where possible instead of ``object`` dtype (:issue:`41526`)
278278
- Improved error message in ``corr`` and ``cov`` methods on :class:`.Rolling`, :class:`.Expanding`, and :class:`.ExponentialMovingWindow` when ``other`` is not a :class:`DataFrame` or :class:`Series` (:issue:`41741`)
279+
- :meth:`Series.between` can now accept ``left`` or ``right`` as arguments to ``inclusive`` to include only the left or right boundary (:issue:`40245`)
279280
- :meth:`DataFrame.explode` now supports exploding multiple columns. Its ``column`` argument now also accepts a list of str or tuples for exploding on multiple columns at the same time (:issue:`39240`)
281+
- :meth:`DataFrame.sample` now accepts the ``ignore_index`` argument to reset the index after sampling, similar to :meth:`DataFrame.drop_duplicates` and :meth:`DataFrame.sort_values` (:issue:`38581`)
280282

281283
.. ---------------------------------------------------------------------------
282284
@@ -305,7 +307,7 @@ As an example of this, given:
305307
original = pd.Series(cat)
306308
unique = original.unique()
307309
308-
*pandas < 1.3.0*:
310+
*Previous behavior*:
309311

310312
.. code-block:: ipython
311313
@@ -315,7 +317,7 @@ As an example of this, given:
315317
In [2]: original.dtype == unique.dtype
316318
False
317319
318-
*pandas >= 1.3.0*
320+
*New behavior*:
319321

320322
.. ipython:: python
321323
@@ -337,7 +339,7 @@ Preserve dtypes in :meth:`DataFrame.combine_first`
337339
df2
338340
combined = df1.combine_first(df2)
339341
340-
*pandas 1.2.x*
342+
*Previous behavior*:
341343

342344
.. code-block:: ipython
343345
@@ -348,7 +350,7 @@ Preserve dtypes in :meth:`DataFrame.combine_first`
348350
C float64
349351
dtype: object
350352
351-
*pandas 1.3.0*
353+
*New behavior*:
352354

353355
.. ipython:: python
354356
@@ -371,7 +373,7 @@ values as measured by ``np.allclose``. Now no such casting occurs.
371373
df = pd.DataFrame({'key': [1, 1], 'a': [True, False], 'b': [True, True]})
372374
df
373375
374-
*pandas 1.2.x*
376+
*Previous behavior*:
375377

376378
.. code-block:: ipython
377379
@@ -381,7 +383,7 @@ values as measured by ``np.allclose``. Now no such casting occurs.
381383
key
382384
1 True 2
383385
384-
*pandas 1.3.0*
386+
*New behavior*:
385387

386388
.. ipython:: python
387389
@@ -399,7 +401,7 @@ Now, these methods will always return a float dtype. (:issue:`41137`)
399401
400402
df = pd.DataFrame({'a': [True], 'b': [1], 'c': [1.0]})
401403
402-
*pandas 1.2.x*
404+
*Previous behavior*:
403405

404406
.. code-block:: ipython
405407
@@ -408,7 +410,7 @@ Now, these methods will always return a float dtype. (:issue:`41137`)
408410
a b c
409411
0 True 1 1.0
410412
411-
*pandas 1.3.0*
413+
*New behavior*:
412414

413415
.. ipython:: python
414416
@@ -432,7 +434,7 @@ insert the values into the existing data rather than create an entirely new arra
432434
In both the new and old behavior, the data in ``values`` is overwritten, but in
433435
the old behavior the dtype of ``df["A"]`` changed to ``int64``.
434436

435-
*pandas 1.2.x*
437+
*Previous behavior*:
436438

437439
.. code-block:: ipython
438440
@@ -447,7 +449,7 @@ the old behavior the dtype of ``df["A"]`` changed to ``int64``.
447449
448450
In pandas 1.3.0, ``df`` continues to share data with ``values``
449451

450-
*pandas 1.3.0*
452+
*New behavior*:
451453

452454
.. ipython:: python
453455
@@ -474,7 +476,7 @@ never casting to the dtypes of the existing arrays.
474476
In the old behavior, ``5`` was cast to ``float64`` and inserted into the existing
475477
array backing ``df``:
476478

477-
*pandas 1.2.x*
479+
*Previous behavior*:
478480

479481
.. code-block:: ipython
480482
@@ -484,7 +486,7 @@ array backing ``df``:
484486
485487
In the new behavior, we get a new array, and retain an integer-dtyped ``5``:
486488

487-
*pandas 1.3.0*
489+
*New behavior*:
488490

489491
.. ipython:: python
490492
@@ -507,7 +509,7 @@ casts to ``dtype=object`` (:issue:`38709`)
507509
ser2 = orig.copy()
508510
ser2.iloc[1] = 2.0
509511
510-
*pandas 1.2.x*
512+
*Previous behavior*:
511513

512514
.. code-block:: ipython
513515
@@ -523,7 +525,7 @@ casts to ``dtype=object`` (:issue:`38709`)
523525
1 2.0
524526
dtype: object
525527
526-
*pandas 1.3.0*
528+
*New behavior*:
527529

528530
.. ipython:: python
529531
@@ -786,6 +788,8 @@ For example:
786788
1 2
787789
2 12
788790
791+
*Future behavior*:
792+
789793
.. code-block:: ipython
790794
791795
In [5]: gb.prod(numeric_only=False)
@@ -815,8 +819,8 @@ Other Deprecations
815819
- Deprecated :meth:`ExponentialMovingWindow.vol` (:issue:`39220`)
816820
- Using ``.astype`` to convert between ``datetime64[ns]`` dtype and :class:`DatetimeTZDtype` is deprecated and will raise in a future version, use ``obj.tz_localize`` or ``obj.dt.tz_localize`` instead (:issue:`38622`)
817821
- Deprecated casting ``datetime.date`` objects to ``datetime64`` when used as ``fill_value`` in :meth:`DataFrame.unstack`, :meth:`DataFrame.shift`, :meth:`Series.shift`, and :meth:`DataFrame.reindex`, pass ``pd.Timestamp(dateobj)`` instead (:issue:`39767`)
818-
- Deprecated :meth:`.Styler.set_na_rep` and :meth:`.Styler.set_precision` in favour of :meth:`.Styler.format` with ``na_rep`` and ``precision`` as existing and new input arguments respectively (:issue:`40134`, :issue:`40425`)
819-
- Deprecated :meth:`.Styler.where` in favour of using an alternative formulation with :meth:`Styler.applymap` (:issue:`40821`)
822+
- Deprecated :meth:`.Styler.set_na_rep` and :meth:`.Styler.set_precision` in favor of :meth:`.Styler.format` with ``na_rep`` and ``precision`` as existing and new input arguments respectively (:issue:`40134`, :issue:`40425`)
823+
- Deprecated :meth:`.Styler.where` in favor of using an alternative formulation with :meth:`Styler.applymap` (:issue:`40821`)
820824
- Deprecated allowing partial failure in :meth:`Series.transform` and :meth:`DataFrame.transform` when ``func`` is list-like or dict-like and raises anything but ``TypeError``; ``func`` raising anything but a ``TypeError`` will raise in a future version (:issue:`40211`)
821825
- Deprecated arguments ``error_bad_lines`` and ``warn_bad_lines`` in :meth:`read_csv` and :meth:`read_table` in favor of argument ``on_bad_lines`` (:issue:`15122`)
822826
- Deprecated support for ``np.ma.mrecords.MaskedRecords`` in the :class:`DataFrame` constructor, pass ``{name: data[name] for name in data.dtype.names}`` instead (:issue:`40363`)
@@ -838,6 +842,7 @@ Other Deprecations
838842
- Deprecated inference of ``timedelta64[ns]``, ``datetime64[ns]``, or ``DatetimeTZDtype`` dtypes in :class:`Series` construction when data containing strings is passed and no ``dtype`` is passed (:issue:`33558`)
839843
- In a future version, constructing :class:`Series` or :class:`DataFrame` with ``datetime64[ns]`` data and ``DatetimeTZDtype`` will treat the data as wall-times instead of as UTC times (matching DatetimeIndex behavior). To treat the data as UTC times, use ``pd.Series(data).dt.tz_localize("UTC").dt.tz_convert(dtype.tz)`` or ``pd.Series(data.view("int64"), dtype=dtype)`` (:issue:`33401`)
840844
- Deprecated passing lists as ``key`` to :meth:`DataFrame.xs` and :meth:`Series.xs` (:issue:`41760`)
845+
- Deprecated boolean arguments of ``inclusive`` in :meth:`Series.between` to have ``{"left", "right", "neither", "both"}`` as standard argument values (:issue:`40628`)
841846
- Deprecated passing arguments as positional for all of the following, with exceptions noted (:issue:`41485`):
842847

843848
- :func:`concat` (other than ``objs``)
@@ -884,7 +889,7 @@ Performance improvements
884889
- Performance improvement in :class:`.Styler` where render times are more than 50% reduced and now matches :meth:`DataFrame.to_html` (:issue:`39972` :issue:`39952`, :issue:`40425`)
885890
- The method :meth:`.Styler.set_td_classes` is now as performant as :meth:`.Styler.apply` and :meth:`.Styler.applymap`, and even more so in some cases (:issue:`40453`)
886891
- Performance improvement in :meth:`.ExponentialMovingWindow.mean` with ``times`` (:issue:`39784`)
887-
- Performance improvement in :meth:`.GroupBy.apply` when requiring the python fallback implementation (:issue:`40176`)
892+
- Performance improvement in :meth:`.GroupBy.apply` when requiring the Python fallback implementation (:issue:`40176`)
888893
- Performance improvement in the conversion of a PyArrow Boolean array to a pandas nullable Boolean array (:issue:`41051`)
889894
- Performance improvement for concatenation of data with type :class:`CategoricalDtype` (:issue:`40193`)
890895
- Performance improvement in :meth:`.GroupBy.cummin` and :meth:`.GroupBy.cummax` with nullable data types (:issue:`37493`)
@@ -955,7 +960,7 @@ Numeric
955960
- Bug in :class:`Series` and :class:`DataFrame` reductions with methods ``any`` and ``all`` not returning Boolean results for object data (:issue:`12863`, :issue:`35450`, :issue:`27709`)
956961
- Bug in :meth:`Series.clip` would fail if the Series contains NA values and has nullable int or float as a data type (:issue:`40851`)
957962
- Bug in :meth:`UInt64Index.where` and :meth:`UInt64Index.putmask` with an ``np.int64`` dtype ``other`` incorrectly raising ``TypeError`` (:issue:`41974`)
958-
- Bug in :meth:`DataFrame.agg()` not sorting the aggregated axis in the order of the provided aggragation functions when one or more aggregation function fails to produce results (:issue:`33634`)
963+
- Bug in :meth:`DataFrame.agg()` not sorting the aggregated axis in the order of the provided aggregation functions when one or more aggregation function fails to produce results (:issue:`33634`)
959964
- Bug in :meth:`DataFrame.clip` not interpreting missing values as no threshold (:issue:`40420`)
960965

961966
Conversion
@@ -1226,4 +1231,4 @@ Other
12261231
Contributors
12271232
~~~~~~~~~~~~
12281233

1229-
.. contributors:: v1.2.4..v1.3.0|HEAD
1234+
.. contributors:: v1.2.5..v1.3.0|HEAD

doc/source/whatsnew/v1.4.0.rst

+3-2
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,13 @@ Timezones
137137

138138
Numeric
139139
^^^^^^^
140-
-
140+
- Bug in :meth:`DataFrame.rank` raising ``ValueError`` with ``object`` columns and ``method="first"`` (:issue:`41931`)
141+
- Bug in :meth:`DataFrame.rank` treating missing values and extreme values as equal (for example ``np.nan`` and ``np.inf``), causing incorrect results when ``na_option="bottom"`` or ``na_option="top`` used (:issue:`41931`)
141142
-
142143

143144
Conversion
144145
^^^^^^^^^^
145-
-
146+
- Bug in :class:`UInt64Index` constructor when passing a list containing both positive integers small enough to cast to int64 and integers too large too hold in int64 (:issue:`42201`)
146147
-
147148

148149
Strings

0 commit comments

Comments
 (0)