From 37d4524a6ad238a638b86056cf7d1680d2171c9d Mon Sep 17 00:00:00 2001 From: Daniel Coll Date: Thu, 14 Oct 2021 20:55:37 -0400 Subject: [PATCH] TST: added groupby apply test for nan coerce --- pandas/tests/groupby/test_apply.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pandas/tests/groupby/test_apply.py b/pandas/tests/groupby/test_apply.py index e07d56931db8c..9e15da1bb0c01 100644 --- a/pandas/tests/groupby/test_apply.py +++ b/pandas/tests/groupby/test_apply.py @@ -1157,3 +1157,24 @@ def test_apply_na(dropna): result = dfgrp.apply(lambda grp_df: grp_df.nlargest(1, "z")) expected = dfgrp.apply(lambda x: x.sort_values("z", ascending=False).head(1)) tm.assert_frame_equal(result, expected) + + +def test_apply_empty_string_nan_coerce_bug(): + # GH#24903 + result = ( + DataFrame( + { + "a": [1, 1, 2, 2], + "b": ["", "", "", ""], + "c": pd.to_datetime([1, 2, 3, 4], unit="s"), + } + ) + .groupby(["a", "b"]) + .apply(lambda df: df.iloc[-1]) + ) + expected = DataFrame( + [[1, "", pd.to_datetime(2, unit="s")], [2, "", pd.to_datetime(4, unit="s")]], + columns=["a", "b", "c"], + index=MultiIndex.from_tuples([(1, ""), (2, "")], names=["a", "b"]), + ) + tm.assert_frame_equal(result, expected)