首页 > 解决方案 > 如何根据类参数命名数据框列?

问题描述

在这方面花费大量时间。我有一个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 attributes: 的名称(即att_1, att_2, att_3)。

属性名称及其数量(不是值)对所有classes. 所以我可以考虑任何class得到它。

我尝试过类似inspect.getmembers(my_tuple[0])inspect.getfullargspec(my_tuple[0]).args没有成功的方法。以它们出现的相同顺序获取这些参数很重要。

标签: pythonpandasdataframe

解决方案


得到了这个解决方案:

my_dict = my_tuple[0]._asdict()
my_col_list = list(my_dict.keys())

推荐阅读