DataFrame.melt函数

DataFrame.melt函数 首页 / Pandas入门教程 / DataFrame.melt函数

Pandas.melt()函数用于unpivot将DataFrame从宽格式转换为长格式。

它的主要任务是将DataFrame压缩为一种格式,其中某些列是标识符变量,而其余列被认为是测量变量,且未在行轴上旋转。

链接:https://www.learnfk.comhttps://www.learnfk.com/pandas/pandas-melt.html

来源:LearnFk无涯教程网

语法

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,可选]   -  引用要取消unpivot的列。如果未指定,则使用未设置为id_vars的所有列。
  • var_name [scalar]                                           -  是指用于"变量(variable)"列的名称。如果为None,则使用frame.columns.name或'variable'。
  • value_name [tuple,默认为'value']               -  是指用于" value"列的名称。

返回值

它返回未unpivot的DataFrame作为输出。

# importing pandas as pd 
import pandas as pd   
# 创建数据框
info = pd.DataFrame({'Name': {0: 'Parker', 1: 'Learnfk', 2: 'John'}, 
                   'Language': {0: 'Python', 1: 'Java', 2: 'C++'}, 
                   'Age': {0: 22, 1: 30, 2: 26}}) 

# 名称是 id_vars,课程是 value_vars
pd.melt(info, id_vars =['Name'], value_vars =['Language']) 
info

输出

      Name    Language     Age
0     Parker    Python     22
1     Learnfk     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                

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Service Mesh实践指南 -〔周晶〕

玩转Git三剑客 -〔苏玲〕

浏览器工作原理与实践 -〔李兵〕

说透中台 -〔王健〕

设计模式之美 -〔王争〕

检索技术核心20讲 -〔陈东〕

etcd实战课 -〔唐聪〕

技术面试官识人手册 -〔熊燚(四火)〕

结构执行力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)