如何获取导入模块中类的所有属性并存储为Pandas列?
实现动态提取类实例属性生成Pandas DataFrame
完全可行,核心思路是利用Python实例的__dict__属性(或vars()函数)动态获取所有实例属性,再转换为Pandas DataFrame即可。
代码实现示例
1. hhh.py模块代码
class HHH: def __init__(self, arg1, arg2): self.arg1 = arg1 self.arg2 = arg2 self.some_variable1 = "foo" self.some_variable2 = 123 # 可随时新增更多实例属性
2. 导入模块并生成DataFrame的脚本
import pandas as pd from hhh import HHH # 实例化HHH类 obj = HHH(arg1="hello", arg2="world") # 动态获取实例的属性字典 attr_dict = obj.__dict__ # 用 vars(obj) 效果一致 # 转换为目标格式的DataFrame df = pd.DataFrame({ "VARIABLE": list(attr_dict.keys()), "VALUE": list(attr_dict.values()) }) # 导出为文件(示例为CSV格式) df.to_csv("instance_attrs.csv", index=False)
关键说明
__dict__会返回实例所有自定义属性的键值对,不管属性数量多少、是否新增,都能自动捕获,彻底避免硬编码。- 如果需要排除特定属性(比如以
_开头的私有属性),可以添加过滤逻辑:filtered_attrs = {k: v for k, v in attr_dict.items() if not k.startswith("_")} df = pd.DataFrame({"VARIABLE": list(filtered_attrs.keys()), "VALUE": list(filtered_attrs.values())})
内容的提问来源于stack exchange,提问作者user10443249
相关产品推荐
相关产品推荐

