如何融化数据框-获取融化数据框字段中的列名

时间:2019-04-05 18:04:33

标签: python dataframe melt

我的df如下

     name       0    1    2    3    4
 0   alex      NaN  NaN  aa   bb  NaN
 1   mike      NaN  rr  NaN  NaN  NaN
 2   rachel    ss  NaN  NaN  NaN  ff
 3   john      NaN  ff  NaN  NaN  NaN

melt函数应返回以下内容

     name      code
 0   alex      2   
 1   alex      3   
 2   mike      1  
 3   rachel    0  
 4   rachel    4
 5   john      1

任何建议都是有帮助的。谢谢。

3 个答案:

答案 0 :(得分:1)

只需执行以下步骤:熔化,dropna,对列name进行排序,重置索引并最终删除所有不需要的列

In [1171]: df.melt(['name'],var_name='code').dropna().sort_values('name').reset_index().drop(['index', 'value'], 1)
Out[1171]:
     name code
0  alex    2
1  alex    3
2  john    1
3  mike    1
4  rachel  0
5  rachel  4

答案 1 :(得分:0)

这应该有效。

 df.unstack().reset_index().dropna()

答案 2 :(得分:0)

df.set_index('name').unstack().reset_index().rename(columns={'level_0':'Code'}).dropna().drop(0,axis =1)[['name','Code']].sort_values('name')

输出将为

name    Code
alex    2
alex    3
john    1
mike    1
rachel  0
rachel  4