3

我尝试转换这样的列表:

l = [[1, 2, 3, 17], [4, 19], [5]]

到一个数据帧,其中每个数字作为索引,列表的位置作为值。

例如,19 在第二个列表中,因此我希望在某一行以“19”作为索引,“1”作为值,依此类推。

我设法得到它(cf.boiler plate below),但我想还有更简单的东西

>>> df=pd.DataFrame(l)    
>>> df=df.unstack().reset_index(level=0,drop=True)    
>>> df=df[df.notnull()==True]   # remove NaN rows 
>>> df=pd.DataFrame(df)    
>>> df = df.reset_index().set_index(0)    
>>> print df
    index
0        
1       0
4       1
5       2
2       0
19      1
3       0
17      0

提前致谢。

4

1 回答 1

3
In [52]: pd.DataFrame([(item, i) for i, seq in enumerate(l) 
                       for item in seq]).set_index(0)
Out[52]: 
    1
0    
1   0
2   0
3   0
17  0
4   1
19  1
5   2
于 2013-09-27T18:01:43.440 回答