嵌套列表字典到pandas DataFrame

时间:2017-07-20 13:12:45

标签: python pandas dictionary nested-lists

我试图了解大熊猫是如何运作的,但我认为我错过了一些明显的东西。

我的文件看起来像这样:

dict_spl ={'doc1':[[('word11',1,1),('word12',1,2)]], 'doc2':[[('word21',2,1),('word22',2,2)]]}

我试图获得一个pandas DataFrame看起来像这样:

# doc1 word11 1 1
# doc1 word12 1 2
# doc2 word21 2 1
# doc2 word22 2 2

我还没有找到一种方法来创建新列和新行,同时复制常用值。

1 个答案:

答案 0 :(得分:2)

您可以使用:

a = [[(k, *y) for y in v[0]] for k,v in dict_spl.items()]
a = [item for sublist in a for item in sublist]

df = pd.DataFrame(a, columns=list('abcd'))
print (df)
      a       b  c  d
0  doc1  word11  1  1
1  doc1  word12  1  2
2  doc2  word21  2  1
3  doc2  word22  2  2

我觉得有更好的解决方案,所以我问here

#Martijn Pieters♦'s solution
a = [(k, *t) for k, v in dict_spl.items() for t in v[0]]
df = pd.DataFrame(a, columns=list('abcd'))
print (df)
      a       b  c  d
0  doc2  word21  2  1
1  doc2  word22  2  2
2  doc1  word11  1  1
3  doc1  word12  1  2