From 431a2f0f544b94f5c039ef7b415394f69d6d1358 Mon Sep 17 00:00:00 2001 From: Tunahan Date: Fri, 12 Sep 2025 15:10:22 +0300 Subject: [PATCH 1/3] TST: add regression test for DataFrame.mean(axis=1) with nullable Int64 dtype (GH#36585) --- pandas/tests/frame/test_reductions.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pandas/tests/frame/test_reductions.py b/pandas/tests/frame/test_reductions.py index df6f37c862323..0c944cb2891c3 100644 --- a/pandas/tests/frame/test_reductions.py +++ b/pandas/tests/frame/test_reductions.py @@ -2170,3 +2170,22 @@ def test_numeric_ea_axis_1(method, skipna, min_count, any_numeric_ea_dtype): if method not in ("idxmax", "idxmin"): expected = expected.astype(expected_dtype) tm.assert_series_equal(result, expected) + +def test_mean_nullable_int_axis_1(): + """ + Test DataFrame.mean(axis=1) with nullable Int64 dtype. + + Ensures correct results with skipna=True and skipna=False. + """ + df = pd.DataFrame({ + "a": [1, 2, 3, 4], + "b": pd.Series([1, 2, 4, None], dtype=pd.Int64Dtype()) + }) + + result = df.mean(axis=1, skipna=True) + expected = pd.Series([1.0, 2.0, 3.5, 4.0], dtype="Float64") + pd.testing.assert_series_equal(result, expected) + + result = df.mean(axis=1, skipna=False) + expected = pd.Series([1.0, 2.0, 3.5, pd.NA], dtype="Float64") + pd.testing.assert_series_equal(result, expected) From d4a528faa77d2f3cc0561740316ff2fb69f4cc87 Mon Sep 17 00:00:00 2001 From: Tunahan Date: Fri, 12 Sep 2025 15:18:36 +0300 Subject: [PATCH 2/3] TST: add regression test for DataFrame.mean(axis=1) with nullable Int64 dtype (GH#36585) v2 --- pandas/tests/frame/test_reductions.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pandas/tests/frame/test_reductions.py b/pandas/tests/frame/test_reductions.py index 0c944cb2891c3..7369f6ef1841b 100644 --- a/pandas/tests/frame/test_reductions.py +++ b/pandas/tests/frame/test_reductions.py @@ -2171,21 +2171,21 @@ def test_numeric_ea_axis_1(method, skipna, min_count, any_numeric_ea_dtype): expected = expected.astype(expected_dtype) tm.assert_series_equal(result, expected) + def test_mean_nullable_int_axis_1(): """ Test DataFrame.mean(axis=1) with nullable Int64 dtype. Ensures correct results with skipna=True and skipna=False. """ - df = pd.DataFrame({ - "a": [1, 2, 3, 4], - "b": pd.Series([1, 2, 4, None], dtype=pd.Int64Dtype()) - }) + df = DataFrame( + {"a": [1, 2, 3, 4], "b": Series([1, 2, 4, None], dtype=pd.Int64Dtype())} + ) result = df.mean(axis=1, skipna=True) - expected = pd.Series([1.0, 2.0, 3.5, 4.0], dtype="Float64") - pd.testing.assert_series_equal(result, expected) - + expected = Series([1.0, 2.0, 3.5, 4.0], dtype="Float64") + tm.assert_series_equal(result, expected) + result = df.mean(axis=1, skipna=False) - expected = pd.Series([1.0, 2.0, 3.5, pd.NA], dtype="Float64") - pd.testing.assert_series_equal(result, expected) + expected = Series([1.0, 2.0, 3.5, pd.NA], dtype="Float64") + tm.assert_series_equal(result, expected) From 6e0fe02d80eb0938af0975030fb975f4c3bef5a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tunahan=20Yard=C4=B1mc=C4=B1?= <92246965+Tunahanyrd@users.noreply.github.com> Date: Sat, 20 Sep 2025 08:13:22 +0300 Subject: [PATCH 3/3] Refactor test_mean_nullable_int_axis_1 docstring --- pandas/tests/frame/test_reductions.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pandas/tests/frame/test_reductions.py b/pandas/tests/frame/test_reductions.py index 7369f6ef1841b..a8f0e77df6af5 100644 --- a/pandas/tests/frame/test_reductions.py +++ b/pandas/tests/frame/test_reductions.py @@ -2173,11 +2173,7 @@ def test_numeric_ea_axis_1(method, skipna, min_count, any_numeric_ea_dtype): def test_mean_nullable_int_axis_1(): - """ - Test DataFrame.mean(axis=1) with nullable Int64 dtype. - - Ensures correct results with skipna=True and skipna=False. - """ + # GH##36585 df = DataFrame( {"a": [1, 2, 3, 4], "b": Series([1, 2, 4, None], dtype=pd.Int64Dtype())} )