Python Pandas dataframe.melt()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas dataframe.melt()函数将一个DataFrame从宽格式转为长格式,可以选择保留标识符变量。这个函数对于将一个DataFrame转换成一个或多个列是标识符变量(id_vars),而所有其他列,被认为是测量变量(value_vars)的格式是 “unpivoted “到行axis上,只留下两个非标识符列,’variable’和’value’。
语法:
DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name=’value’, col_level=None)
参数 :
frame : DataFrame
id_vars :作为标识符变量的柱子
value_vars : 要取消透视的列。如果不指定,则使用所有未被设置为id_vars的列。
var_name : 用于 “变量 “列的名称。如果没有,则使用 frame.columns.name 或 ‘variable’。
value_name : 用于 “value “列的名称。
col_level :如果列是一个MultiIndex,那么用这个级别来融化。
返回: 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')
输出 :