Movatterモバイル変換


[0]ホーム

URL:


Skip to main content
Ctrl+K

pandas.DataFrame.melt#

DataFrame.melt(id_vars=None,value_vars=None,var_name=None,value_name='value',col_level=None,ignore_index=True)[source]#

Unpivot a DataFrame from wide to long format, optionally leaving identifiers set.

This function is useful to massage a DataFrame into a format where oneor more columns are identifier variables (id_vars), while all othercolumns, considered measured variables (value_vars), are “unpivoted” tothe row axis, leaving just two non-identifier columns, ‘variable’ and‘value’.

Parameters:
id_varsscalar, tuple, list, or ndarray, optional

Column(s) to use as identifier variables.

value_varsscalar, tuple, list, or ndarray, optional

Column(s) to unpivot. If not specified, uses all columns thatare not set asid_vars.

var_namescalar, default None

Name to use for the ‘variable’ column. If None it usesframe.columns.name or ‘variable’.

value_namescalar, default ‘value’

Name to use for the ‘value’ column, can’t be an existing column label.

col_levelscalar, optional

If columns are a MultiIndex then use this level to melt.

ignore_indexbool, default True

If True, original index is ignored. If False, the original index is retained.Index labels will be repeated as necessary.

Returns:
DataFrame

Unpivoted DataFrame.

See also

melt

Identical method.

pivot_table

Create a spreadsheet-style pivot table as a DataFrame.

DataFrame.pivot

Return reshaped DataFrame organized by given index / column values.

DataFrame.explode

Explode a DataFrame from list-like columns to long format.

Notes

Referencethe user guide for more examples.

Examples

>>>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  C0  a  1  21  b  3  42  c  5  6
>>>df.melt(id_vars=['A'],value_vars=['B'])   A variable  value0  a        B      11  b        B      32  c        B      5
>>>df.melt(id_vars=['A'],value_vars=['B','C'])   A variable  value0  a        B      11  b        B      32  c        B      53  a        C      24  b        C      45  c        C      6

The names of ‘variable’ and ‘value’ columns can be customized:

>>>df.melt(id_vars=['A'],value_vars=['B'],...var_name='myVarname',value_name='myValname')   A myVarname  myValname0  a         B          11  b         B          32  c         B          5

Original index values can be kept around:

>>>df.melt(id_vars=['A'],value_vars=['B','C'],ignore_index=False)   A variable  value0  a        B      11  b        B      32  c        B      50  a        C      21  b        C      42  c        C      6

If you have multi-index columns:

>>>df.columns=[list('ABC'),list('DEF')]>>>df   A  B  C   D  E  F0  a  1  21  b  3  42  c  5  6
>>>df.melt(col_level=0,id_vars=['A'],value_vars=['B'])   A variable  value0  a        B      11  b        B      32  c        B      5
>>>df.melt(id_vars=[('A','D')],value_vars=[('B','E')])  (A, D) variable_0 variable_1  value0      a          B          E      11      b          B          E      32      c          B          E      5

[8]ページ先頭

©2009-2025 Movatter.jp