Skip to content

Commit b379d54

Browse files
committed
DEPR: object inference in to_stata
1 parent d77d5e5 commit b379d54

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

pandas/io/stata.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,14 @@ def parse_dates_safe(
429429
d["days"] = days_in_ns // NS_PER_DAY
430430

431431
elif infer_dtype(dates, skipna=False) == "datetime":
432+
# - Deprecated casting object-dtype columns of datetimes to datetime64 when writing to stata; call df=df.infer_objects() before writing to stata instead (:issue:`??`)
433+
warnings.warn(
434+
"Converting object-dtype columns of datetimes to datetime64 when "
435+
"writing to stata is deprecated. Call "
436+
"`df=df.infer_objects(copy=False)` before writing to stata instead.",
437+
FutureWarning,
438+
stacklevel=find_stack_level(),
439+
)
432440
if delta:
433441
delta = dates._values - stata_epoch
434442

pandas/tests/io/test_stata.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -885,7 +885,12 @@ def test_big_dates(self, datapath):
885885
# {c : c[-2:] for c in columns}
886886
with tm.ensure_clean() as path:
887887
expected.index.name = "index"
888-
expected.to_stata(path, convert_dates=date_conversion)
888+
msg = (
889+
"Converting object-dtype columns of datetimes to datetime64 "
890+
"when writing to stata is deprecated"
891+
)
892+
with tm.assert_produces_warning(FutureWarning, match=msg):
893+
expected.to_stata(path, convert_dates=date_conversion)
889894
written_and_read_again = self.read_dta(path)
890895

891896
tm.assert_frame_equal(

0 commit comments

Comments
 (0)