从未知数量的系列pandas创建Dataframe

时间:2014-03-25 19:18:14

标签: python pandas series

我有一个(用户定义的)对象列表,称为"仪器测量"。这些标题可以通过Instrument_Measurement.name访问,也可以通过Instrument_Measurement.data访问一系列数据(两种用户定义的方法)。

这些"仪器测量"对象是名为list_instr_objects的列表中的项目。项目数量("仪器测量和#34;)更改/无法进行硬编码。

我需要为每个"仪器测量"创建一个带有列标题Instrument_Measurement.name的数据帧。以及Instrument_Measurement.data的那一列的数据,用于相应的"仪器测量"。

我试图通过创建这些对象的字典然后将其转换为Dataframe来实现此目的:

from collections import defaultdict
testdict = defaultdict(list)

for i in range(len(list_instr_objects)):
    testdict[list_instr_objects[i].name].append(list_instr_objects[i].data)

但这并不起作用,只保留每个乐器的第一个数据条目,并且条目以看似随机的顺序出现。我想这是因为我将一个系列传递到字典,我应该通过一个列表,但我不能想到如何做到这一点/如何解决这个问题。

有什么想法吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用OrderedDict来保持订单并使用下面的代码生成数据帧。

import pandas as pd
from collections import OrderedDict

testdict = OrderedDict()

for i in range(len(list_instr_objects)):
    testdict[list_instr_objects[i].name] = (list_instr_objects[i].data)

combined_data = pd.DataFrame(testdict)