如何将Python类属性数据转换为Pandas DataFrame?
从类属性生成Pandas DataFrame的方法
单实例场景
如果只有单个Surfers实例(比如你的surfer1),可以手动提取指定属性构造字典,再转换为DataFrame:
import pandas as pd # 提取目标属性,注意用列表包裹单个值(DataFrame要求列数据为可迭代类型) data = { 'Name': [surfer1.name_full], 'Round': [surfer1.contest_round], 'Score': [surfer1.score] } df = pd.DataFrame(data) print(df)
输出结果:
Name Round Score 0 Kelly Slater 2 15.75
多实例批量处理场景
如果有多个Surfers实例(比如爬虫批量获取的对象),可以用列表推导式结合getattr批量提取属性,效率更高:
# 先创建第二个示例实例 surfer2 = Surfers() surfer2.contest_round = '3' surfer2.name_full = "John John Florence" surfer2.score = '16.20' # 存储所有实例的列表 surfers_list = [surfer1, surfer2] # 定义要提取的属性名和对应的DataFrame列名 target_attrs = ['name_full', 'contest_round', 'score'] column_names = ['Name', 'Round', 'Score'] # 批量生成数据并创建DataFrame df = pd.DataFrame( [[getattr(surfer, attr) for attr in target_attrs] for surfer in surfers_list], columns=column_names ) print(df)
输出结果:
Name Round Score 0 Kelly Slater 2 15.75 1 John John Florence 3 16.20
关键说明
getattr(obj, attr_name)可以动态获取对象的属性值,适合属性较多或需要批量处理的场景,避免重复写硬编码的属性调用。- 构造DataFrame时,列对应的数据源必须是可迭代类型(比如列表),单个值要放在列表中,否则会报错。
内容的提问来源于stack exchange,提问作者bs2012
相关产品推荐
相关产品推荐

