2015-03-18 50 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