Python技术迷

Pandas 教程-Pandas melt()

整理:python架构师

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
专属福利 
👉点击领取:最全Python资料合集
输出
      Name    Language     Age0     Parker    Python     221     Smith     Java       302     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    myValname0      p      C            56                1      q      C            62                2      r      C            42
Image
 1
Image
热门推荐

Image