From 8183756bbf406bdaa77fce1e165dd8d8190fed04 Mon Sep 17 00:00:00 2001 From: Patrick Hoefler Date: Sun, 14 May 2023 11:48:50 +0200 Subject: [PATCH] BUG: Interpolate not respecting inplace for empty df --- doc/source/whatsnew/v2.1.0.rst | 1 + pandas/core/generic.py | 2 ++ pandas/tests/frame/methods/test_interpolate.py | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/doc/source/whatsnew/v2.1.0.rst b/doc/source/whatsnew/v2.1.0.rst index b6c13c287d5f9..4d57572298b66 100644 --- a/doc/source/whatsnew/v2.1.0.rst +++ b/doc/source/whatsnew/v2.1.0.rst @@ -371,6 +371,7 @@ Indexing Missing ^^^^^^^ +- Bug in :meth:`DataFrame.interpolate` ignoring ``inplace`` when :class:`DataFrame` is empty (:issue:`53199`) - Bug in :meth:`Series.interpolate` and :meth:`DataFrame.interpolate` failing to raise on invalid ``downcast`` keyword, which can be only ``None`` or "infer" (:issue:`53103`) - diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 93fecc4a7b096..c8cd76fba2cfb 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -7778,6 +7778,8 @@ def interpolate( obj = self.T if should_transpose else self if obj.empty: + if inplace: + return None return self.copy() if method not in fillna_methods: diff --git a/pandas/tests/frame/methods/test_interpolate.py b/pandas/tests/frame/methods/test_interpolate.py index 2b54c34096152..057561aa1d58b 100644 --- a/pandas/tests/frame/methods/test_interpolate.py +++ b/pandas/tests/frame/methods/test_interpolate.py @@ -437,3 +437,11 @@ def test_interp_fillna_methods(self, request, axis, method, using_array_manager) expected = df.fillna(axis=axis, method=method) result = df.interpolate(method=method, axis=axis) tm.assert_frame_equal(result, expected) + + def test_interpolate_empty_df(self): + # GH#53199 + df = DataFrame() + expected = df.copy() + result = df.interpolate(inplace=True) + assert result is None + tm.assert_frame_equal(df, expected)