pandas.melt()
函数用于将DataFrame从宽格式转换为长格式。在宽格式中,变量通常作为列存在,而在长格式中,这些变量通常被"融化"到一列中,并使用一个或多个标识符变量来区分。这在数据清洗和重塑数据时非常有用。
下面是pandas.melt()
函数的基本语法:
pythonCopy code
pandas.melt(frame, 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
: 新生成的列的名称,默认为variable
。value_name
: 新生成的值列的名称,默认为value
。col_level
: 如果列是MultiIndex(多级索引)的,指定在哪个级别上融化。
例如,假设有如下DataFrame:
python蟒Copy code
解释
import pandas as pd df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'}, 'B': {0: 1, 1: 3, 2: 5}, 'C': {0: 2, 1: 4, 2: 6}})
DataFrame df
如下所示:
cssCSS系统Copy code
解释
A B C 0 a 1 2 1 b 3 4 2 c 5 6
我们可以使用melt()
函数将其转换为长格式:
python蟒Copy code
melted_df = pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
这将会产生一个新的DataFrame melted_df
,如下所示:
cssCSS系统Copy code
解释
A variable value 0 a B 1 1 b B 3 2 c B 5 3 a C 2 4 b C 4 5 c C 6
这里,原始的DataFrame中的列A被保留为id_vars,列B和C被融化到一个新的variable
列,并且它们的值被融化到一个新的value
列。