从列表列表创建数据框

时间:2021-02-08 19:10:13

标签: python pandas list

我有一个列表“list_of_lists”,看起来像这样:

[[1,2,3,4],[1,2,3],[3,4,3,2,1,9], [8,3]]

所以在这个例子中我们有 4 个列表,但可能不止这些。 我想要的是创建一个包含两列的数据框,第一列包含列表的元素,第二列包含元素所属的列表编号(第一个列表 = 1,第二个列表 = 2,依此类推)< /p>

所以它看起来像这样:

element list_n
1       1
2       1
3       1
4       1
1       2
2       2
3       2
3       3
4       3
3       3
.... etc

2 个答案:

答案 0 :(得分:1)

转换列表列表后很简单

import pandas as pd 
spam = [[1,2,3,4], [1,2,3], [3,4,3,2,1,9], [8,3]]
df= pd.DataFrame([[n, idx] for idx, item in enumerate(spam, start=1)
                  for n in item], columns=['element', 'list_n'])
print(df)

答案 1 :(得分:1)

一种理解为你做到了

l = [[1,2,3,4],[1,2,3],[3,4,3,2,1,9], [8,3]]
pd.DataFrame([[e,ln+1] for ln,sl in enumerate(l) for e in sl], columns=["element","list_n"])