pandas melt参数的详细用法

2023-02-25 00:00:00 参数 用法 详细

pandas 中的 melt() 函数可以将数据框从宽格式(Wide Format)转换为长格式(Long Format),使得数据更易于进行分析和可视化。 melt() 函数包含以下常用参数:

  • id_vars:指定哪些列应该保留在结果中,而不是被转换为变量。默认情况下,所有未指定的列都将被转换为变量。可以使用列名或列索引指定。
  • value_vars:指定哪些列应该被转换为变量。可以使用列名或列索引指定。如果未指定,则使用除 id_vars 列以外的所有列作为变量。
  • var_name:指定新生成的变量列的名称。默认为 variable。
  • value_name:指定新生成的值列的名称。默认为 value。
  • col_level:如果原始数据框包含多层列索引,则指定要操作的列层级。默认为 None,表示忽略多层列索引。

下面是一个示例:

import pandas as pd

# 创建一个数据框
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
                   'Math': [90, 80, 70],
                   'Science': [85, 75, 65],
                   'History': [80, 70, 60]})

# 使用 melt() 函数将数据框转换为长格式
df_melted = pd.melt(df, id_vars=['Name'], value_vars=['Math', 'Science', 'History'],
                    var_name='Subject', value_name='Score')

# 输出转换后的数据框
print(df_melted)

输出结果如下:

       Name  Subject  Score
0     Alice     Math     90
1       Bob     Math     80
2   Charlie     Math     70
3     Alice  Science     85
4       Bob  Science     75
5   Charlie  Science     65
6     Alice  History     80
7       Bob  History     70
8   Charlie  History     60

在这个示例中,使用 id_vars 参数指定 Name 列为保留列,使用 value_vars 参数指定 Math、Science 和 History 列为需要转换为变量的列。var_name 和 value_name 参数分别指定新生成的变量列和值列的名称。

相关文章