You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:05:17