Skip to content

Commit 1dccef5

Browse files
committed
DEPR: convert_datetime64 parameter in to_records()
1 parent 0bfb61b commit 1dccef5

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

doc/source/whatsnew/v0.23.0.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,7 @@ Deprecations
728728
- The ``broadcast`` parameter of ``.apply()`` is deprecated in favor of ``result_type='broadcast'`` (:issue:`18577`)
729729
- The ``reduce`` parameter of ``.apply()`` is deprecated in favor of ``result_type='reduce'`` (:issue:`18577`)
730730
- The ``order`` parameter of :func:`factorize` is deprecated and will be removed in a future release (:issue:`19727`)
731+
- The ``convert_datetime64`` parameter has been deprecated and the default value is now ``False`` in :func:`to_records` as the NumPy bug motivating this parameter has been resolved (:issue:`18160`).
731732

732733
.. _whatsnew_0230.prior_deprecations:
733734

pandas/core/frame.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,7 +1207,7 @@ def from_records(cls, data, index=None, exclude=None, columns=None,
12071207

12081208
return cls(mgr)
12091209

1210-
def to_records(self, index=True, convert_datetime64=True):
1210+
def to_records(self, index=True, convert_datetime64=False):
12111211
"""
12121212
Convert DataFrame to record array. Index will be put in the
12131213
'index' field of the record array if requested
@@ -1216,14 +1216,23 @@ def to_records(self, index=True, convert_datetime64=True):
12161216
----------
12171217
index : boolean, default True
12181218
Include index in resulting record array, stored in 'index' field
1219-
convert_datetime64 : boolean, default True
1219+
convert_datetime64 : boolean, default False
1220+
.. deprecated:: 0.23.0
1221+
12201222
Whether to convert the index to datetime.datetime if it is a
12211223
DatetimeIndex
12221224
12231225
Returns
12241226
-------
12251227
y : recarray
12261228
"""
1229+
1230+
if convert_datetime64:
1231+
warnings.warn("The 'convert_datetime64' parameter is "
1232+
"deprecated and will be removed in a future "
1233+
"version",
1234+
FutureWarning, stacklevel=2)
1235+
12271236
if index:
12281237
if is_datetime64_any_dtype(self.index) and convert_datetime64:
12291238
ix_vals = [self.index.to_pydatetime()]

pandas/tests/frame/test_convert_to.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@ def test_to_records_dt64(self):
7878
df = DataFrame([["one", "two", "three"],
7979
["four", "five", "six"]],
8080
index=date_range("2012-01-01", "2012-01-02"))
81-
assert df.to_records()['index'][0] == df.index[0]
81+
with tm.assert_produces_warning(FutureWarning):
82+
expected = df.index[0]
83+
result = df.to_records(convert_datetime64=True)['index'][0]
84+
assert expected == result
8285

8386
rs = df.to_records(convert_datetime64=False)
8487
assert rs['index'][0] == df.index.values[0]

0 commit comments

Comments
 (0)