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

如何高效将Pandas DataFrame列合并为嵌套列表

高效生成嵌套列表列的解决方案

针对你需要为DataFrame添加嵌套列表列的需求,这里提供几种比iterrows()高效得多的实现方式:

方法1:Numpy矢量化操作(最优效率)

利用numpy的reshape将二维数组转为三维,再直接转成列表,完全避免循环,效率最高:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(100,4), columns=list('abcd'))
# 生成嵌套列表列
df['e'] = df.values.reshape(-1, 1, 4).tolist()

原理:df.values是(100,4)的二维数组,reshape(-1,1,4)将其转为(100,1,4)的三维数组,tolist()后每行就变成了[[a,b,c,d]]的嵌套结构。

方法2:列表推导式

通过遍历df.values的行来生成嵌套列表,比apply和iterrows都快:

df['e'] = [[row.tolist()] for row in df.values]

方法3:apply配合lambda

虽然比前两种慢,但比iterrows高效:

df['e'] = df.apply(lambda x: [x.tolist()], axis=1)

效率对比

  • Numpy reshape方法:完全矢量化,速度最快
  • 列表推导式:接近矢量化,速度次之
  • apply方法:比iterrows快,但仍有行级遍历开销
  • iterrows:最慢,不推荐用于大数据量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:31:11