如何仅转置数据框的一部分或交换行和列?

mathque33

输入数据框是这样的:

branch   letter   var1   var2   var3
  A         a       1      2     4
  A         b       3      4     5
  B         a       6      7     9
  B         b       2      3     8

我只想交换第 2 列,即“字母”与列“var1”、“var2”、“var3”,如下所示:

输出数据帧:

branch   category   a   b
  A         var1    1   3
  A         var2    2   4
  A         var3    4   5
  B         var1    6   2
  B         var2    7   3
  B         var3    9   8  

如何使用熊猫做到这一点?

艾伦

您可以先设置['letter', 'branch']为索引,然后使用stack().

(
    df.set_index(['letter', 'branch']).T
    .stack()
    .reset_index(level=0)
    .sort_index()
    .rename(columns={'level_0':'category'})
)

letter  category    a   b
branch          
A       var1        1   3
A       var2        2   4
A       var3        4   5
B       var1        6   2
B       var2        7   3
B       var3        9   8

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章