将包含列表的dict列表转换为一个数据帧

时间:2018-03-18 17:40:59

标签: pandas

最有效的转换方法是什么?

给出带有列表的dict列表。

list_df = [
  {'High':[2,3,4,5,5,3,3,4,5,5],'Low':[0,-3,1,4,1,2,2,3,1,-1],'Name':['A','A','A','A','A','A','A','A','A','A']},
  {'High':[35,23,424,5,25,3,223,4,5,255],'Low':[3,3,44,5,2,3,22,2,1,25]},'Name':['B','B','B','B','B','B','B','B','B','B']
]

如果我df = pd.DataFrame(list_df),则每行都是值列表。 结果是

    Name High Low
0 [A,A,..][2,3,4..][0,-3,1..]
1 [B,B,..][35,23,424..][3,3,44..] 

我想要的是:

Name High Low
 A   2    0
 A   3   -3
 A   4    1
 A   5    4

1 个答案:

答案 0 :(得分:0)

IIUC

pd.concat([pd.DataFrame(x) for x in list_df])
Out[190]: 
   High  Low Name
0     2    0    A
1     3   -3    A
2     4    1    A
3     5    4    A
4     5    1    A
5     3    2    A
6     3    2    A
7     4    3    A
8     5    1    A
9     5   -1    A
0    35    3    B
1    23    3    B
2   424   44    B
3     5    5    B
4    25    2    B
5     3    3    B
6   223   22    B
7     4    2    B
8     5    1    B
9   255   25    B