Pandas.melt() 函数用于将 DataFrame 从宽格式转换为长格式,主要任务是将 DataFrame 转换成一种格式,其中一些列是标识变量,其余列被视为测量变量,被转移到行轴上。它仅保留两个非标识符列,即变量和值。

语法

pandas.melt(frame, id_vars=None, value_vars=None,  
 var_name=None, value_name='value', col_level=None)  

参数

  • frame: 指的是 DataFrame。
  • id_vars[tuple、list 或 ndarray,可选]: 用作标识符变量的列。
  • value_vars[tuple、list 或 ndarray,可选]: 要取消旋转的列。如果未指定,则使用所有未设置为 id_vars 的列。
  • var_name[标量]: 用于 'variable' 列的名称。如果为 None,则使用 frame.columns.name 或 'variable'。
  • value_name[标量,默认为 'value']: 用于 'value' 列的名称。
  • col_level[整数或字符串,可选]: 如果列是 MultiIndex,则将使用此级别进行融合。

返回

它返回取消旋转的 DataFrame 作为输出。

示例

# importing pandas as pd   
import pandas as pd     
# creating a dataframe   
info = pd.DataFrame({'Name': {0: 'Parker', 1: 'Smith', 2: 'John'},   
                   'Language': {0: 'Python', 1: 'Java', 2: 'C++'},   
                   'Age': {0: 22, 1: 30, 2: 26}})   
  
# Name is id_vars and Course is value_vars   
pd.melt(info, id_vars =['Name'], value_vars =['Language'])   
info  

输出

      Name    Language     Age
0     Parker    Python     22
1     Smith     Java       30
2     John      C++        26

示例2

import pandas as pd   
info = pd.DataFrame({'A': {0: 'p', 1: 'q', 2: 'r'},  
'B': {0: 40, 1: 55, 2: 25},  
'C': {0: 56, 1: 62, 2: 42}})  
pd.melt(info, id_vars=['A'], value_vars=['C'])  
pd.melt(info, id_vars=['A'], value_vars=['B', 'C'])  
pd.melt(info, id_vars=['A'], value_vars=['C'],  
var_name='myVarname', value_name='myValname')  

输出

       A    myVarname    myValname
0      p      C            56                
1      q      C            62                
2      r      C            42                

标签: Pandas, Pandas教程, Pandas库, Pandas基础, Pandas学习, Pandas使用, Pandas指南, Pandas入门教程, Pandas模块, Pandas数据库, Pandas实战教程, Pandas用法总结, Pandas文档