2015-03-18 93 views
0

鑑於我有一個名單,我怎麼能解開它變成一個熊貓的數據幀,例如:打開包裝列表爲大熊貓

data = {u'2344': ["id", "value1", "value2", "01", "Addf112", "Addf113", "02", " ", "Addf213"]} 

>> id value1 value2 
    01 Ad112 Ad113 
    02   Ad213 
+1

對於'''''''''參數使用前三個值,對於數據使用前三個值(其中三個爲一組)。如果列表名稱爲''''''',那麼'''zip(a [:: 3],a [1 :: 3],[2 :: 3]'''應該可以讓你開始。 – wwii 2015-03-18 21:02:08

回答

0

你不得不提取列名的單個元素,然後構建一個列表包括2只列出了您的2行數據:

In [23]: 

data = {u'2344': ["id", "value1", "value2", "01", "Addf112", "Addf113", "02", " ", "Addf213"]} 

pd.DataFrame(columns = data['2344'][:3], data=[data['2344'][3:6], data['2344'][6:]]) 
Out[23]: 
    id value1 value2 
0 01 Addf112 Addf113 
1 02   Addf213 

的動態方法將是使用一個組塊(從答案之一修改,以此question)來構建字典並使用此構造DF :

In [59]: 

def chunker(seq, stride): 
    cols = seq[:stride] 
    data = [seq[stride:][pos::stride] for pos in range(0, stride)] 
    return dict(zip(cols,data)) 

pd.DataFrame(chunker(data['2344'],3)) 

Out[59]: 
    id value1 value2 
0 01 Addf112 Addf113 
1 02   Addf213 
+0

是它可以動態獲取行而不需要手動指定它們data = [data ['2344'] [3:6],data ['2344'] [6:]]'? – ArchieTiger 2015-03-18 21:12:36

+0

你必須知道你的數據結構之前,在這種情況下,你必須知道列是前三個值,以下3個值是行數據 – EdChum 2015-03-18 21:14:16

+0

我已經添加了一些代碼,應該能夠處理可變長度或行在列表 – EdChum 2015-03-18 21:29:33