在这上面花了很多时间。我有tuple
个不可调用的classes
,全部命名为SymbolInfo
,具有相同的attribute
标签。让我们说:
In: print(my_tuple)
Out: (SymbolInfo(att_1=False, att_2=0, att_3=1.0),SymbolInfo(att_1=True, att_2=0, att_3=1.5))
我的目标是从这个tuple
创建一个数据帧。当我将其转换为list
时,它可以正常工作:
df = pd.DataFrame(list(my_tuple))
我得到了数据帧,但没有得到列标签,列标签应该是classes
{att_1
,att_2
,att_3
)的名称
所有classes
的属性名称及其数量(不是值)都是标准化的。所以我可以考虑任何{{CD13}}来获得它。
我尝试过像inspect.getmembers(my_tuple[0])
和inspect.getfullargspec(my_tuple[0]).args
这样的方法,但没有成功。重要的是要让这些参数以它们出现的相同顺序出现
您可以使用
__dict__
方法访问属性(按添加顺序),如下所示:结果是
现在,您可以在字典中循环并提取属性名称的键
只需从类创建dict,然后创建数据帧:
我建议在python中使用面向对象的
attrs
库得到了这个解决方案:
相关问题 更多 >
编程相关推荐