当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas dataframe.melt()用法及代码示例


Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统。 Pandas是其中的一种,使导入和分析数据更加容易。

Pandas dataframe.melt()函数取消将DataFrame从宽格式转为长格式,可以选择保留标识符变量。此函数对于将DataFrame按摩成一种格式非常有用,其中一列或多列是标识符变量(id_vars),而所有其他列(被视为测量变量(value_vars))在行轴上均为“unpivoted”,仅留下两个非标识符列, “变量”和“值”。

用法:DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name=’value’, col_level=None)
参数:
frame: DataFrame
id_vars: Column(s) to use as identifier variables
value_vars: Column(s) to unpivot. If not specified, uses all columns that are not set as id_vars.
var_name: Name to use for the ‘variable’ column. If None it uses frame.columns.name or ‘variable’.
value_name: Name to use for the ‘value’ column
col_level: If columns are a MultiIndex then use this level to melt.

返回值:DataFrame变成一种格式,其中一列或多列是标识符变量

范例1:采用melt()函数将“A”列设置为标识符变量,将“B”列设置为值变量。

# importing pandas as pd 
import pandas as pd 
  
# Creating the dataframe  
df = pd.DataFrame({"A":[12, 4, 5, 44, 1],  
                   "B":[5, 2, 54, 3, 2],  
                   "C":[20, 16, 7, 3, 8],  
                   "D":[14, 3, 17, 2, 6]}) 
  
# Print the dataframe 
df

让我们使用dataframe.melt()函数将“A”列设置为标识符变量,将“B”列设置为值变量。

# function to unpivot the dataframe 
df.melt(id_vars =['A'], value_vars =['B'])

输出:


范例2:采用melt()函数将“A”列设置为标识符变量,将“B”和“C”列设置为值变量。还可以自定义值列和变量列的名称。

# importing pandas as pd 
import pandas as pd 
  
# Creating the dataframe  
df = pd.DataFrame({"A":[12, 4, 5, 44, 1], 
                   "B":[5, 2, 54, 3, 2],  
                   "C":[20, 16, 7, 3, 8],  
                   "D":[14, 3, 17, 2, 6]}) 
  
# Print the dataframe 
df

让我们使用dataframe.melt()函数将“A”列设置为标识符变量,将“B”和“C”列设置为值变量。

# function to unpivot the dataframe 
# We will also provide a customized name to the value and variable column 
  
df.melt(id_vars =['A'], value_vars =['B', 'C'],  
        var_name ='Variable_column', value_name ='Value_column')

输出:



相关用法


注:本文由纯净天空筛选整理自Shubham__Ranjan大神的英文原创作品 Python | Pandas dataframe.melt()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。