我有一个(用户定义的)对象列表,称为"仪器测量"。这些标题可以通过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)
但这并不起作用,只保留每个乐器的第一个数据条目,并且条目以看似随机的顺序出现。我想这是因为我将一个系列传递到字典,我应该通过一个列表,但我不能想到如何做到这一点/如何解决这个问题。
有什么想法吗?
非常感谢提前。
答案 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)