首页 > 解决方案 > 如何使用 Python 将列值转换为行标题?

问题描述

我需要将列值转换为 python 中的标题。

    testdf = {'Student_id':['10001','10001','10001','20001','20001','30001','30001','30001'],
          'Subject':['S1','S2','S3','S1','S2','S1','S2','S3'],
          'Mark':['80','60','70','50','70','90','80','40']
         }
testdf = pd.DataFrame(data=testdf)
testdf

在此处输入图像描述

我想要一张像

在此处输入图像描述

当我尝试下面的代码时

testdf.pivot(index="Student_id",columns="Subject")

我得到如下:

在此处输入图像描述

标签: pythonpandasdataframe

解决方案


添加参数valuesDataFrame.pivot在必要时进行数据清理 -DataFrame.rename_axis用于删除列名称和DataFrame.reset_index列来自index

df = (testdf.pivot(index="Student_id",columns="Subject", values='Mark')
            .rename_axis(None, axis=1)
            .reset_index())
print (df)
  Student_id  S1  S2   S3
0      10001  80  60   70
1      20001  50  70  NaN
2      30001  90  80   40

推荐阅读