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

如何实现两个列表的一对一映射并生成pandas DataFrame

实现两个列表笛卡尔积转DataFrame的方案

你原有代码无法得到预期结果的核心原因是:循环内直接对df["A"]、df["B"]赋值是直接覆盖整列的所有值,不会新增行,最终只会得到只有1行的错误结果。

以下是两种可直接运行的正确实现:

方法1:使用pandas内置方法实现(推荐)

利用pd.MultiIndex.from_product直接生成笛卡尔积,代码更简洁性能更好:

import pandas as pd

a = [1,2,3]
b = [1,2]

# from_product参数顺序对应列的生成顺序,names参数指定列名
df = pd.MultiIndex.from_product([b, a], names=['colA', 'colB']).to_frame(index=False)

方法2:循环实现(适合理解逻辑)

先把两组值分别存到列表里,最后再统一转DataFrame:

import pandas as pd

a = [1,2,3]
b = [1,2]

colA_list = []
colB_list = []

for val_b in b:
    for val_a in a:
        colA_list.append(val_b)
        colB_list.append(val_a)

df = pd.DataFrame({
    "colA": colA_list,
    "colB": colB_list
})

两种方法输出的结果都和你要求的格式完全一致:

colA  colB
0     1     1
1     1     2
2     1     3
3     2     1
4     2     2
5     2     3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:45:03