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

如何高效遍历Pandas DataFrame以创建自定义对象?

高效从Pandas DataFrame批量创建自定义Node对象的问题

背景

我有一个从SQL数据库加载的Pandas DataFrame,需要为每一行构造一个自定义的Node对象。最初尝试用df.apply实现,但测试发现速度极慢,因此想找到最快的实现方案。

测试设置

为对比不同实现的性能,我搭建了测试环境,具体设置如下:

  • 编写多个函数,统一以DataFrame为输入,输出Node对象列表
  • 固定随机种子,确保所有测试函数使用完全相同的输入DataFrame
  • 构造不同规模的DataFrame,行数N取2、4、8…32768等递进值
  • 测试时调用create_node或create_node_ignored_args生成对象,需注意DataFrame列顺序与函数参数顺序不匹配,必须通过列查询(如指定LOOKUP列列表)正确传递参数,否则会生成错误的Node对象

测试结果

针对两种典型场景测试后,得到以下结果:

  • 大DataFrame + 低迭代次数:性能最优的实现包括zip_comprehension_np_values_lookup、zip_comprehension_lookup等
  • 小DataFrame + 高迭代次数:除上述实现外,to_numpy_take也表现出最优性能

疑问

  1. 是否存在业界通用的高效批量创建自定义对象的方法?
  2. 我目前找到的「先查询目标列,再用zip打包后批量生成对象」的方式,是否是当前的最优解?
  3. 为什么df.apply(lambda row: create_node(*row[LOOKUP]), axis=1)会是最慢的实现之一?

内容的提问来源于stack exchange,提问作者Atheuz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:22:06