我有一个(用户定义的)对象列表,称为“仪器测量”。它们有一个标题,可由Instrument_Measurement.name访问,还有一系列数据可由Instrument_Measurement.data访问(都是用户定义的方法)。
这些“仪器测量”对象是名为list_instr_objects的列表中的项。项目数(“仪器测量”)更改/不能硬编码。
我需要为每个“仪器测量”创建一个列标题为Instrument_Measurement.name的Dataframe,为相应的“仪器测量”创建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)但是,这是行不通的,只保留了每个仪器的第一个数据输入,并且条目以看似随机的顺序出现。我认为这是因为我在向字典传递一个系列,在字典中我应该传递一个列表,但我想不出其他方法/如何解决这个问题。
有什么想法吗?
在此之前,非常感谢您。
发布于 2014-03-25 19:40:36
我认为您可以使用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)https://stackoverflow.com/questions/22644288
复制相似问题