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

  1. import pandas as pd
  2. df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
  3. 'age':[18, 39, 22],
  4. 'price': [1.0, 2.0, 3.0],
  5. 'color': ['red', 'black', None]})
  6. df.melt(id_vars=['site'], value_vars=['age'])
  7. ---------------------------------------------------------
  8. site variable value
  9. 0 google age 18
  10. 1 baidu age 39
  11. 2 wiki age 22

Example

  1. import pandas as pd
  2. df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
  3. 'age':[18, 39, 22],
  4. 'price': [1.0, 2.0, 3.0],
  5. 'color': ['red', 'black', None]})
  6. df.melt(id_vars=['site'], value_vars=['age', 'price'])
  7. -------------------------------------------------------------
  8. site variable value
  9. 0 google age 18.0
  10. 1 baidu age 39.0
  11. 2 wiki age 22.0
  12. 3 google price 1.0
  13. 4 baidu price 2.0
  14. 5 wiki price 3.0

Example

  1. import pandas as pd
  2. df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
  3. 'age':[18, 39, 22],
  4. 'price': [1.0, 2.0, 3.0],
  5. 'color': ['red', 'black', None]})
  6. df.melt(id_vars=['site'], value_vars=['age'], var_name='variable_name', value_name='value_name')
  7. ----------------------------------------------------------------------
  8. site variable_name value_name
  9. 0 google age 18
  10. 1 baidu age 39
  11. 2 wiki age 22

Example

  1. import pandas as pd
  2. df = pd.DataFrame({'site':['google', 'baidu', 'wiki'],
  3. 'age':[18, 39, 22],
  4. 'price': [1.0, 2.0, 3.0],
  5. 'color': ['red', 'black', None]})
  6. df.melt(id_vars=['site'], value_vars=['age', 'price'], ignore_index=False)
  7. ----------------------------------------------------------------------------
  8. site variable value
  9. 0 google age 18.0
  10. 1 baidu age 39.0
  11. 2 wiki age 22.0
  12. 0 google price 1.0
  13. 1 baidu price 2.0
  14. 2 wiki price 3.0