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

如何生成Pandas DataFrame各列唯一值的所有组合

生成Pandas各列唯一值的所有组合

问题描述

给定如下Pandas DataFrame:

A  B  C
0  1  2  3
1  4  5  6

需要生成包含各列自身唯一值所有组合的新DataFrame,覆盖所有可能的列值组合。

解决方案

通过提取各列唯一值并生成笛卡尔积的方式实现,具体步骤如下:

  1. 构造输入DataFrame
import pandas as pd

df = pd.DataFrame({
    'A': [1, 4],
    'B': [2, 5],
    'C': [3, 6]
})
  1. 生成各列唯一值的笛卡尔积
    利用pd.MultiIndex.from_product生成所有组合,再转换为DataFrame:
# 提取每列的唯一值列表
unique_columns = [df[col].unique() for col in df.columns]

# 生成笛卡尔积并转换为DataFrame
result_df = pd.DataFrame(
    data=pd.MultiIndex.from_product(unique_columns, names=df.columns),
    columns=df.columns
)

执行后得到的结果为:

A  B  C
0  1  2  3
1  1  2  6
2  1  5  3
3  1  5  6
4  4  2  3
5  4  2  6
6  4  5  3
7  4  5  6
  1. 调整结果排序(可选)
    如果需要和示例完全一致的排序逻辑,可以对结果按B列、A列排序:
result_df = result_df.sort_values(by=['B', 'A'], ignore_index=True)

调整后输出:

A  B  C
0  1  2  3
1  4  2  3
2  1  2  6
3  4  2  6
4  1  5  3
5  4  5  3
6  1  5  6
7  4  5  6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:03:21