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 pdimport pandas as pd# creating a dataframeinfo = 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_varspd.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 pdinfo = 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 561 q C 622 r C 42
热门推荐