鉴于我有一个名单,我怎么能解开它变成一个熊猫的数据帧,例如:打开包装列表为大熊猫
data = {u'2344': ["id", "value1", "value2", "01", "Addf112", "Addf113", "02", " ", "Addf213"]}
>> id value1 value2
01 Ad112 Ad113
02 Ad213
鉴于我有一个名单,我怎么能解开它变成一个熊猫的数据帧,例如:打开包装列表为大熊猫
data = {u'2344': ["id", "value1", "value2", "01", "Addf112", "Addf113", "02", " ", "Addf213"]}
>> id value1 value2
01 Ad112 Ad113
02 Ad213
你不得不提取列名的单个元素,然后构建一个列表包括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
是它可以动态获取行而不需要手动指定它们data = [data ['2344'] [3:6],data ['2344'] [6:]]'? – ArchieTiger 2015-03-18 21:12:36
你必须知道你的数据结构之前,在这种情况下,你必须知道列是前三个值,以下3个值是行数据 – EdChum 2015-03-18 21:14:16
我已经添加了一些代码,应该能够处理可变长度或行在列表 – EdChum 2015-03-18 21:29:33
对于'''''''''参数使用前三个值,对于数据使用前三个值(其中三个为一组)。如果列表名称为''''''',那么'''zip(a [:: 3],a [1 :: 3],[2 :: 3]'''应该可以让你开始。 – wwii 2015-03-18 21:02:08