2017-10-10 31 views
0

列表創建數據幀我有熊貓系列枝條結構如下:如何從熊貓系列方含不同長度

> 0 [{k1:a,k2:b,k3:c},{k1:d,k2:e,k3:f}] 

> 1 [{k1:g,k2:h,k3:i},{k1:j,k2:k,k3:l},{k1:ł,k2:m,k3:n}] 


> 2 [{k1:o,k2:p,k3:r} 

> 3 [{k1:s,k2:t,k3:w},{k1:q,k2:z,k3:w},{k1:x,k2:y,k3:z},{k1:v,k2:f,k3:g}] 

,你可以看到這個系列包含elemnts不同長度的名單。每個列表中的元素都是字典。我想創建的數據幀,這將看起來像這樣:

>  k1 k2 k3 

> 0 a  b  c 

> 1 d  e  f 

> 2 g  h  i 

> 3 j  k  l 

> 4 ł  m  n 

> 5 o  p  r 

> 6 s  t  w 

> 7 q  z  w 

> 8 x  y  z 

> 9 f  v  g 

我曾嘗試下面的代碼:

>for index_val, series_val in series.iteritems(): 
>> for dict in series_val: 
>>>  for key,value in dict.items(): 
>>>>   actions['key']=value 

然而PyCharm停止併產生什麼。有沒有其他方法可以做到這一點?

+0

我認爲第9行'V F g'可能是一個錯字。 – Dark

回答

1

使用CONCAT與apply pd.DataFrame

x = pd.Series([[{'k1':'a','k2':'b','k3':'c'},{'k1':'d','k2':'e','k3':'f'}], [{'k1':'g','k2':'h','k3':'i'},{'k1':'j','k2':'k','k3':'l'},{'k1':'ł','k2':'m','k3':'n'}], 
     [{'k1':'o','k2':'p','k3':'r'}],[{'k1':'s','k2':'t','k3':'w'},{'k1':'q','k2':'z','k3':'w'},{'k1':'x','k2':'y','k3':'z'},{'k1':'v','k2':'f','k3':'g'}]]) 


df = pd.concat(x.apply(pd.DataFrame,1).tolist(),ignore_index=True) 

輸出:

 
    k1 k2 k3 
0 a b c 
1 d e f 
2 g h i 
3 j k l 
4 ł m n 
5 o p r 
6 s t w 
7 q z w 
8 x y z 
9 v f g 

+0

非常感謝!它完美的工作! – ElaSz

+2

替代'df = pd.concat(p.DataFrame(x)for s.values.tolist())' – jezrael

+0

@ElaSz如果我的回答很有幫助,請接受它。 – Dark