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

如何基于空Pandas DataFrame生成所有独热编码组合的DataFrame?

解决方案

要生成包含所有0/1独热编码组合的DataFrame,可以借助itertools.product生成笛卡尔积,再转换为Pandas DataFrame,具体实现如下:

示例(3列空DataFrame)

import pandas as pd
import itertools

# 创建示例空DataFrame
df_empty = pd.DataFrame(columns=['col1', 'col2', 'col3'])

# 获取列名列表
cols = df_empty.columns
# 生成所有0和1的组合:2^3=8种
all_combinations = list(itertools.product([0, 1], repeat=len(cols)))

# 转换为目标DataFrame
df_full = pd.DataFrame(all_combinations, columns=cols)
print(df_full)

执行后会输出包含8行的DataFrame,覆盖col1/col2/col3所有0/1组合。

推广到58列的场景

只需将示例中的空DataFrame替换为你的58列空DataFrame即可,核心代码逻辑一致:

import pandas as pd
import itertools

# 假设这是你的58列空DataFrame
df_empty = pd.DataFrame(columns=[f'col{i}' for i in range(1, 59)])

cols = df_empty.columns
all_combinations = list(itertools.product([0, 1], repeat=len(cols)))
df_full = pd.DataFrame(all_combinations, columns=cols)

重要注意事项

58列的场景下,所有组合的数量为2^58,约等于2.88×10^17行——这个数据量远超常规存储和计算的极限,甚至无法在内存中加载,实际操作中几乎不可能生成完整的DataFrame。如果你的真实需求并非生成全部组合,建议调整方案(比如生成抽样组合、或针对特定业务逻辑生成子集)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:50:33