我有多个列,我想合并成一个。另一个困难是动物(如狗)可能有多个代码(因此字符串concat不起作用)。
我尝试过pivot、stack和unstack,但多值列让我难以理解。
原始数据帧:
所需数据帧:
有没有办法一举做到这一点?我的最后一个结果是使用所需的头创建一个新的数据帧,并使用df.append()
。
尝试:
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