Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何熔化数据帧--在熔化数据帧字段中获取列名_Python_Dataframe_Melt - Fatal编程技术网

Python 如何熔化数据帧--在熔化数据帧字段中获取列名

Python 如何熔化数据帧--在熔化数据帧字段中获取列名,python,dataframe,melt,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 熔化功能应返回以下值 name code 0 alex 2

我有一个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
熔化功能应返回以下值

     name      code
 0   alex      2   
 1   alex      3   
 2   mike      1  
 3   rachel    0  
 4   rachel    4
 5   john      1
任何建议都是有益的。谢谢。

这应该行得通

 df.unstack().reset_index().dropna()
输出将是

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

只需执行以下步骤:melt、dropna、排序列名、重置索引,最后删除任何不需要的列

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
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