首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据Pandas dataframe中的两个索引将多个列值转置为一列

在Pandas中,可以使用melt()函数将DataFrame中的多个列值转置为一列。melt()函数的基本语法如下:

代码语言:txt
复制
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)

参数说明:

  • frame:要转置的DataFrame。
  • id_vars:需要保留的列名或列索引,不进行转置的列。
  • value_vars:需要转置的列名或列索引,将这些列的值转置为一列。
  • var_name:转置后的列名,默认为variable
  • value_name:转置后的值的列名,默认为value
  • col_level:如果列是多级索引的,则使用该参数指定要转置的级别。

下面是一个示例,演示如何根据Pandas DataFrame中的两个索引将多个列值转置为一列:

代码语言:txt
复制
import pandas as pd

# 创建示例DataFrame
data = {'ID': [1, 2, 3],
        'Name': ['Alice', 'Bob', 'Charlie'],
        'Maths': [90, 85, 95],
        'Physics': [80, 75, 85],
        'Chemistry': [95, 90, 85]}
df = pd.DataFrame(data)

# 将Maths、Physics和Chemistry列转置为一列
df_transposed = pd.melt(df, id_vars=['ID', 'Name'], value_vars=['Maths', 'Physics', 'Chemistry'], var_name='Subject', value_name='Score')

print(df_transposed)

输出结果如下:

代码语言:txt
复制
   ID     Name    Subject  Score
0   1    Alice      Maths     90
1   2      Bob      Maths     85
2   3  Charlie      Maths     95
3   1    Alice    Physics     80
4   2      Bob    Physics     75
5   3  Charlie    Physics     85
6   1    Alice  Chemistry     95
7   2      Bob  Chemistry     90
8   3  Charlie  Chemistry     85

在这个例子中,我们将DataFrame中的MathsPhysicsChemistry列转置为了一列,并命名为SubjectScore。转置后的DataFrame包含了原始DataFrame中的IDName和转置后的列。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券