pandas.melt¶
- pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)¶
“Unpivots” a DataFrame from wide format to long format, optionally leaving id variables set
Parameters: frame : DataFrame
id_vars : tuple, list, or ndarray
value_vars : tuple, list, or ndarray
var_name : scalar, if None uses frame.column.name or ‘variable’
value_name : scalar, default ‘value’
col_level : scalar, if columns are a MultiIndex then use this level to melt
Examples
>>> import pandas as pd >>> df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'}, ... 'B': {0: 1, 1: 3, 2: 5}, ... 'C': {0: 2, 1: 4, 2: 6}})
>>> df A B C 0 a 1 2 1 b 3 4 2 c 5 6
>>> melt(df, id_vars=['A'], value_vars=['B']) A variable value 0 a B 1 1 b B 3 2 c B 5
>>> melt(df, id_vars=['A'], value_vars=['B'], ... var_name='myVarname', value_name='myValname') A myVarname myValname 0 a B 1 1 b B 3 2 c B 5
>>> df.columns = [list('ABC'), list('DEF')]
>>> melt(df, col_level=0, id_vars=['A'], value_vars=['B']) A variable value 0 a B 1 1 b B 3 2 c B 5
>>> melt(df, id_vars=[('A', 'D')], value_vars=[('B', 'E')]) (A, D) variable_0 variable_1 value 0 a B E 1 1 b B E 3 2 c B E 5