我尝试转换这样的列表:
l = [[1, 2, 3, 17], [4, 19], [5]]
到一个数据框,每个数字作为indice,列表的位置为value。
例如,19位于第二个列表中,因此我希望得到一行,其中“19”作为索引,“1”作为值,依此类推。
我设法得到它(cf.boiler plate下面),但我想有更简单的事情
>>> 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
提前致谢。
答案 0 :(得分: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