You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/source/v0.15.0.txt
+19-10Lines changed: 19 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@ users upgrade to this version.
19
19
- New scalar type ``Timedelta``, and a new index type ``TimedeltaIndex``, see :ref:`here <whatsnew_0150.timedeltaindex>`
20
20
- New datetimelike properties accessor ``.dt`` for Series, see :ref:`Datetimelike Properties <whatsnew_0150.dt>`
21
21
- Split indexing documentation into :ref:`Indexing and Selecting Data <indexing>` and :ref:`MultiIndex / Advanced Indexing <advanced>`
22
+
- ``read_csv`` will now by default ignore blank lines when parsing, see :ref:`here <whatsnew_0150.blanklines>`
22
23
- API change in using Indexes in set operations, see :ref:`here <whatsnew_0150.index_set_ops>`
23
24
- Internal refactoring of the ``Index`` class to no longer sub-class ``ndarray``, see :ref:`Internal Refactoring <whatsnew_0150.refactoring>`
24
25
- dropping support for ``PyTables`` less than version 3.0.0, and ``numexpr`` less than version 2.1 (:issue:`7990`)
@@ -61,9 +62,11 @@ API changes
61
62
62
63
- Raise a ``ValueError`` in ``df.to_hdf`` with 'fixed' format, if ``df`` has non-unique columns as the resulting file will be broken (:issue:`7761`)
63
64
65
+
.. _whatsnew_0150.blanklines:
66
+
64
67
- Made both the C-based and Python engines for `read_csv` and `read_table` ignore empty lines in input as well as
65
-
whitespace-filled lines, as long as `sep` is not whitespace. This is an API change
66
-
that can be controlled by the keyword parameter `skip_blank_lines`. see :ref:`here <io.skiplines>`(:issue:`4466`)
68
+
whitespace-filled lines, as long as ``sep`` is not whitespace. This is an API change
69
+
that can be controlled by the keyword parameter ``skip_blank_lines``. See :ref:`the docs <io.skiplines>`(:issue:`4466`)
67
70
68
71
- Bug in passing a ``DatetimeIndex`` with a timezone that was not being retained in DataFrame construction from a dict (:issue:`7822`)
69
72
@@ -140,6 +143,10 @@ API changes
140
143
didx
141
144
didx.tz_localize(None)
142
145
146
+
- ``tz_localize`` now accepts the ``ambiguous`` keyword which allows for passing an array of bools
147
+
indicating whether the date belongs in DST or not, 'NaT' for setting transition times to NaT,
148
+
'infer' for inferring DST/non-DST, and 'raise' (default) for an AmbiguousTimeError to be raised. See :ref:`the docs<timeseries.timezone_ambiguous>` for more details (:issue:`7943`)
149
+
143
150
- ``DataFrame.tz_localize`` and ``DataFrame.tz_convert`` now accepts an optional ``level`` argument
144
151
for localizing a specific level of a MultiIndex (:issue:`7846`)
145
152
- ``Timestamp.tz_localize`` and ``Timestamp.tz_convert`` now raise ``TypeError`` in error cases, rather than ``Exception`` (:issue:`8025`)
@@ -158,12 +165,17 @@ API changes
158
165
159
166
In prior versions there was a difference in these two constructs:
160
167
161
-
- ``df.loc[[3]]`` would (prior to 0.15.0) return a frame reindexed by 3 (with all ``np.nan`` values)
168
+
- ``df.loc[[3]]`` would return a frame reindexed by 3 (with all ``np.nan`` values)
162
169
- ``df.loc[[3],:]`` would raise ``KeyError``.
163
170
164
171
Both will now raise a ``KeyError``. The rule is that *at least 1* indexer must be found when using a list-like and ``.loc`` (:issue:`7999`)
165
172
166
-
There was also a difference between ``df.loc[[1,3]]`` (returns a frame reindexed by ``[1, 3]``) and ``df.loc[[1, 3],:]`` (would raise ``KeyError`` prior to 0.15.0). Both will now return a reindexed frame.
173
+
Furthermore in prior versions these were also different:
174
+
175
+
- ``df.loc[[1,3]]`` would return a frame reindexed by [1,3]
176
+
- ``df.loc[[1,3],:]`` would raise ``KeyError``.
177
+
178
+
Both will now return a frame reindex by [1,3]. E.g.
- ``tz_localize`` now accepts the ``ambiguous`` keyword which allows for passing an array of bools
267
-
indicating whether the date belongs in DST or not, 'NaT' for setting transition times to NaT,
268
-
'infer' for inferring DST/non-DST, and 'raise' (default) for an AmbiguousTimeError to be raised. See :ref:`the docs<timeseries.timezone_ambiguous>` for more details (:issue:`7943`)
269
-
270
278
- ``DataFrame.info()`` now ends its output with a newline character (:issue:`8114`)
271
279
272
280
.. _whatsnew_0150.dt:
@@ -351,6 +359,7 @@ Rolling/Expanding Moments API changes
:func:`rolling_window`, and :func:`rolling_apply` with ``center=True`` previously would return a result of the same
353
361
structure as the input ``arg`` with ``NaN`` in the final ``(window-1)/2`` entries.
362
+
354
363
Now the final ``(window-1)/2`` entries of the result are calculated as if the input ``arg`` were followed
355
364
by ``(window-1)/2`` ``NaN`` values (or with shrinking windows, in the case of :func:`rolling_apply`).
356
365
(:issue:`7925`, :issue:`8269`)
@@ -575,7 +584,7 @@ This type is very similar to how ``Timestamp`` works for ``datetimes``. It is a
575
584
Prior to 0.15.0 ``pd.to_timedelta`` would return a ``Series`` for list-like/Series input, and a ``np.timedelta64`` for scalar input.
576
585
It will now return a ``TimedeltaIndex`` for list-like input, ``Series`` for Series input, and ``Timedelta`` for scalar input.
577
586
578
-
The arguments to ``pd.to_timedelta`` are now ``(arg,unit='ns',box=True)``, previously were ``(arg,box=True,unit='ns')`` as these are more logical.
587
+
The arguments to ``pd.to_timedelta`` are now ``(arg,unit='ns',box=True,coerce=False)``, previously were ``(arg,box=True,unit='ns')`` as these are more logical.
579
588
580
589
Consruct a scalar
581
590
@@ -738,7 +747,7 @@ Enhancements
738
747
739
748
740
749
741
-
- Added experimental compatibility with openpyxl v2. The ``DataFrame.to_excel``
750
+
- Added experimental compatibility with ``openpyxl`` for versions >= 2.0. The ``DataFrame.to_excel``
742
751
method ``engine`` keyword now recognizes ``openpyxl1`` and ``openpyxl2``
743
752
which will explicitly require openpyxl v1 and v2 respectively, failing if
744
753
the requested version is not available. The ``openpyxl`` engine is a now a
0 commit comments