将 Panda 列拆分为多行

时间:2021-05-27 17:56:09

标签: python pandas

我有多个列,我想将它们合并为一个。另一个困难是动物(例如狗)可以有多个代码(因此字符串连接不起作用)。

我尝试过数据透视、堆叠、取消堆叠,但多个列让我难以理解。

原始数据帧:

<头>
动物 代码_X 代码_Y Code_Z 值1 Value2 Value3
111 $3 $3 $3
222 333 $4 $4 $4
鼠标 444 $5 $5 $5
狐狸 555 666 $6 $6 $6

所需的数据帧:

<头>
动物 代码 值1 Value2 Value3
111 $3 $3 $3
222 $4 $4 $4
333 $4 $4 $4
鼠标 444 $5 $5 $5
狐狸 555 $6 $6 $6
狐狸 666 $6 $6 $6

有没有办法一次性做到这一点?我的最后一个结果是创建一个具有所需标题的新数据框并使用 df.append()

1 个答案:

答案 0 :(得分:3)

试试:

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
相关问题