3

私はそのようなリストを変換しようとします:

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

それぞれの番号をインデックスとして、リストの位置を値として持つデータフレームに。

たとえば、19 は 2 番目のリストにあるため、インデックスとして「19」、値として「1」を含む 1 つの行がどこかで取得されることを期待しています。

私はなんとかそれを手に入れました(以下のボイラープレートを参照)が、もっと簡単なものがあると思います

>>> 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 に答える