DataFrame.melt
DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name=’value’, col_level=None, ignore_index=True)
将DataFrame从宽格式转为长格式。
此函数可用于将DataFrame转换为一种格式,其中一列或多列是标识符变量(id_vars),而其他所有列,被视为测量变量(value_vars)。
Parameters
| id_vars | 用作标识符变量的列 |
|---|---|
| value_vars | 要取消旋转的列。如果未指定,则使用所有未设置为id_vars的列。 |
| var_name | 用于“变量”列的名称。 |
| value_name | 用于“值”列的名称。 |
| col_level | 如果列是MultiIndex,则使用此级别来融合。 |
| ignore_index | True:忽略原始索引;False:保留原始索引 |
Example
import pandas as pddf = pd.DataFrame({'site':['google', 'baidu', 'wiki'],'age':[18, 39, 22],'price': [1.0, 2.0, 3.0],'color': ['red', 'black', None]})df.melt(id_vars=['site'], value_vars=['age'])---------------------------------------------------------site variable value0 google age 181 baidu age 392 wiki age 22
Example
import pandas as pddf = pd.DataFrame({'site':['google', 'baidu', 'wiki'],'age':[18, 39, 22],'price': [1.0, 2.0, 3.0],'color': ['red', 'black', None]})df.melt(id_vars=['site'], value_vars=['age', 'price'])-------------------------------------------------------------site variable value0 google age 18.01 baidu age 39.02 wiki age 22.03 google price 1.04 baidu price 2.05 wiki price 3.0
Example
import pandas as pddf = pd.DataFrame({'site':['google', 'baidu', 'wiki'],'age':[18, 39, 22],'price': [1.0, 2.0, 3.0],'color': ['red', 'black', None]})df.melt(id_vars=['site'], value_vars=['age'], var_name='variable_name', value_name='value_name')----------------------------------------------------------------------site variable_name value_name0 google age 181 baidu age 392 wiki age 22
Example
import pandas as pddf = pd.DataFrame({'site':['google', 'baidu', 'wiki'],'age':[18, 39, 22],'price': [1.0, 2.0, 3.0],'color': ['red', 'black', None]})df.melt(id_vars=['site'], value_vars=['age', 'price'], ignore_index=False)----------------------------------------------------------------------------site variable value0 google age 18.01 baidu age 39.02 wiki age 22.00 google price 1.01 baidu price 2.02 wiki price 3.0
