提问者:小点点

将Panda列拆分为多行


我有多个列,我想合并成一个。另一个困难是动物(如狗)可能有多个代码(因此字符串concat不起作用)。

我尝试过pivot、stack和unstack,但多值列让我难以理解。

原始数据帧:

所需数据帧:

有没有办法一举做到这一点?我的最后一个结果是使用所需的头创建一个新的数据帧,并使用df.append()


共1个答案

匿名用户

尝试:

df.melt(['Animal', 'Value1', 'Value2', 'Value3'], value_name='Code')\
  .dropna(subset=['Code'])\
  .drop('variable', axis=1)

输出:

  Animal Value1 Value2 Value3   Code
0    Cat     $3     $3     $3  111.0
3    Fox     $6     $6     $6  555.0
5    Dog     $4     $4     $4  222.0
6  Mouse     $5     $5     $5  444.0
7    Fox     $6     $6     $6  666.0
9    Dog     $4     $4     $4  333.0