##### `pd.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)` **功能简介:** - 用于将 DataFrame 从宽格式(wide format)转换为长格式(long format)。这个函数将多列合并为两列,其中一列包含变量名称,另一列包含变量的值。 **参数说明:** - `frame`:要转换的 DataFrame。 - `id_vars`:要保留的列名,这些列将作为标识变量(id variables)。 - `value_vars`:要转换的列名,这些列将作为值变量(value variables)。 - `var_name`:新生成的变量名称列的名称。 - `value_name`:新生成的值列的名称。 - `col_level`:如果 DataFrame 的列是多层索引的,可以指定列层级。 - `ignore_index`:是否忽略生成的索引。 **返回值:** - 返回一个新的 DataFrame,包含从宽格式转换为长格式的数据。 **用法示例:** 1. 从宽格式转换为长格式: ```python import pandas as pd # 创建一个宽格式的 DataFrame data = {'Name': ['Alice', 'Bob'], 'Math': [90, 85], 'Science': [88, 92]} df = pd.DataFrame(data) # 将 DataFrame 从宽格式转换为长格式 melted_df = pd.melt(df, id_vars='Name', value_vars=['Math', 'Science'], var_name='Subject', value_name='Score') print(melted_df) ``` 2. 处理多层索引的 DataFrame: ```python import pandas as pd # 创建一个多层索引的 DataFrame data = {'Name': ['Alice', 'Bob', 'Alice', 'Bob'], 'Subject': ['Math', 'Math', 'Science', 'Science'], 'Score': [90, 85, 88, 92]} df = pd.DataFrame(data) df = df.set_index(['Name', 'Subject']) # 将多层索引的 DataFrame 从宽格式转换为长格式 melted_df = pd.melt(df, col_level=0, ignore_index=False, var_name='Exam', value_name='Score') print(melted_df) ``` 在这个示例中,通过设置多层索引,将 DataFrame 从宽格式转换为长格式,并保留多层索引的层级信息。 请注意,以上示例假设您已经安装了 pandas 库。您可以使用 `pip install pandas` 命令来安装它。