首页 > 解决方案 > 使用第一列作为 colNames 旋转 pandas 数据框

问题描述

我知道pivot_table 在python 中是如何工作的。但是我有一个不同的问题。我的示例数据框(或 csv 文件)如下所示:

        df 

        
       PRD    A1    A2     A3     A4    A5    A6   A7 

       DN     12    67-1    34    98    07    45   29

       AV    uy-9   iu-9    uyt   tr    uytq  hbg   nba

       PVAL   12.9   1.9    2.3   3.9    6.9  8.0   12

但是我希望我的数据如下所示:

              df 

                 PRD         DN          AV         PVAL 

                  A1         12          uy-9       12.9
                  A2         67-1        iu-9        1.9
                  A3         34          uyt         2.3
                  A4         98           tr         3.9
                  A5         07          uytq        6.9
                  A6         45           hbg        8.0
                  A7         29           nba        12

我试图使用 pd.pivot_table,但不确定如何指定动态列名或值。

任何帮助将不胜感激。谢谢

标签: pythonpandaspivot-tabletranspose

解决方案


有两种方法可以更改 pandas 中的行和列:

  • 使用 pandas.DataFrame.T
df_transposed = df.T
  • 使用 pandas.DataFrame.transpose
df_transposed = df.transpose()

笔记

根据每列的数据类型 dtype,创建视图而不是副本,并且更改原始对象和转置对象之一的值将更改另一个。

在中,如果设置为transpose(),则始终生成副本。copyTrue

df_t_copy = df.transpose(copy=True)

推荐阅读