diff --git a/doc/source/whatsnew/v1.5.0.rst b/doc/source/whatsnew/v1.5.0.rst index 73dc832e2007b..4ef7e74e4f722 100644 --- a/doc/source/whatsnew/v1.5.0.rst +++ b/doc/source/whatsnew/v1.5.0.rst @@ -620,6 +620,7 @@ Styler Metadata ^^^^^^^^ +- Fixed metadata propagation in :meth:`DataFrame.melt` (:issue:`28283`) - Fixed metadata propagation in :meth:`DataFrame.explode` (:issue:`28283`) - diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 683674d8ef826..6c754683c7a98 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -8717,7 +8717,7 @@ def melt( value_name=value_name, col_level=col_level, ignore_index=ignore_index, - ) + ).__finalize__(self, method="melt") # ---------------------------------------------------------------------- # Time series-related diff --git a/pandas/tests/generic/test_finalize.py b/pandas/tests/generic/test_finalize.py index 9e5e616148a32..999fee5c8281c 100644 --- a/pandas/tests/generic/test_finalize.py +++ b/pandas/tests/generic/test_finalize.py @@ -156,13 +156,10 @@ (pd.DataFrame, frame_data, operator.methodcaller("stack")), (pd.DataFrame, frame_data, operator.methodcaller("explode", "A")), (pd.DataFrame, frame_mi_data, operator.methodcaller("unstack")), - pytest.param( - ( - pd.DataFrame, - ({"A": ["a", "b", "c"], "B": [1, 3, 5], "C": [2, 4, 6]},), - operator.methodcaller("melt", id_vars=["A"], value_vars=["B"]), - ), - marks=not_implemented_mark, + ( + pd.DataFrame, + ({"A": ["a", "b", "c"], "B": [1, 3, 5], "C": [2, 4, 6]},), + operator.methodcaller("melt", id_vars=["A"], value_vars=["B"]), ), pytest.param( (pd.DataFrame, frame_data, operator.methodcaller("applymap", lambda x: x))