Skip to content

Commit 164b1ce

Browse files
committed
ENH col_level argument to melt
1 parent 0378de5 commit 164b1ce

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

pandas/core/reshape.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ def _stack_multi_columns(frame, level=-1, dropna=True):
601601

602602

603603
def melt(frame, id_vars=None, value_vars=None,
604-
var_name=None, value_name='value'):
604+
var_name=None, value_name='value', col_level=None):
605605
"""
606606
"Unpivots" a DataFrame from wide format to long format, optionally leaving
607607
id variables set
@@ -613,6 +613,7 @@ def melt(frame, id_vars=None, value_vars=None,
613613
value_vars : tuple, list, or ndarray
614614
var_name : scalar, if None uses frame.column.name or 'variable'
615615
value_name : scalar, default 'value'
616+
col_level : scalar, if columns are a MultiIndex then use this level to melt
616617
617618
Examples
618619
--------
@@ -652,6 +653,9 @@ def melt(frame, id_vars=None, value_vars=None,
652653
else:
653654
frame = frame.copy()
654655

656+
if col_level: # allow list?
657+
frame.columns = frame.columns.get_level_values(col_level) # frame is a copy
658+
655659
if var_name is None:
656660
var_name = frame.columns.name if frame.columns.name is not None else 'variable'
657661

0 commit comments

Comments
 (0)