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

高效生成列表所有3元素组合及结果存入DataFrame的实现方法

高效生成笛卡尔积并转换为DataFrame的方案

更高效的生成方式

你原有代码实现的是长度为3的笛卡尔积生成,Python标准库的itertools.product是专门用于该场景的工具,性能远优于手动写多层嵌套循环,且代码更易维护:

import itertools

nums = range(1, 4)
# repeat参数指定每个输入迭代器的重复次数,生成3元素组合直接设为3即可
combinations_iter = itertools.product(nums, repeat=3)

该方案的优势如下:

  • 底层为C语言实现,运行效率比纯Python嵌套循环高,数据量越大优势越明显
  • 无需手动修改嵌套层数,后续如果要生成4/5个元素的组合,仅需修改repeat参数即可
  • 返回迭代器对象,无需提前把所有结果加载到内存,内存占用更低

直接转换为DataFrame

你可以直接把生成的迭代器传入Pandas的DataFrame构造方法,不需要先转成列表存储:

import itertools
import pandas as pd

nums = range(1, 4)
df = pd.DataFrame(itertools.product(nums, repeat=3), columns=["数字1", "数字2", "数字3"])

如果不想依赖itertools,也可以用Pandas自带的MultiIndex.from_product实现:

import pandas as pd

nums = range(1,4)
df = pd.DataFrame(pd.MultiIndex.from_product([nums, nums, nums]).to_list(), columns=["数字1", "数字2", "数字3"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:15:04