我有一个以下列组织格式存储的文件:
Dictionary
List
Object
Attribute
具体如下:
dict = {
'0': [TestObject(),TestObject(),TestObject(),TestObject(),TestObject()]
'1': [TestObject(),TestObject(),TestObject(),TestObject(),TestObject()]
'2': [TestObject(),TestObject(),TestObject(),TestObject(),TestObject()]
'3': [TestObject(),TestObject(),TestObject(),TestObject(),TestObject()]
}
TestObject对象定义为:
import random
class TestObject:
def __init__(self):
self.id = random.randint()
self.date = random.randint()
self.size = random.randint()
本例中的属性并不重要,只是占位符。我所关心的是将此数据格式转换为 Dataframe 。具体来说,我希望将数据组织为类似以下格式:
|key| object | id | date | size |
|-- | ------ | ---- | ---- | ---- |
| 0 |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| 1 |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| 2 |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| 3 |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
| |TestObject| rand | rand | rand |
我发现了一个将列表字典转换为 Dataframe 的方法:
pandas.DataFrame.from_dict(dictionary)
但在本例中,我感兴趣的是从存储在列表中的对象中提取属性。
2条答案
按热度按时间htzpubme1#
您可以使用列表解析:
您首先需要在初始代码中修复一些问题:
输出示例:
mqkwyuun2#
在python中,每个对象都有一个
__dict__
属性,该属性列出了所有属性及其值:第一个
使用dict解析,您可以轻松地实现您的目标,而不必指定所有需要的属性并添加带有类名的对象列:
第一次
然后用新的dict调用pd.DataFrame并转置它:
第一个