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

如何使用pandas基于姓名与编程语言列表生成两两组合的DataFrame

实现方案

你需要的是两个列表的笛卡尔积(全两两配对)效果,以下是3种可直接运行的实现方式:

方法1:pandas原生最简实现

直接用pandas内置的多级索引方法生成配对,代码最简洁:

import pandas as pd

# 原始变量
name = ['John','Seen','Sam','Tom','Lisa']
language = ['python','java','C++','javascript']

# 生成全配对DataFrame
df = pd.MultiIndex.from_product([name, language], names=['name', 'Language']).to_frame(index=False)

方法2:借助标准库itertools实现

逻辑更直观,适合对pandas接口不熟悉的场景:

import pandas as pd
from itertools import product

name = ['John','Seen','Sam','Tom','Lisa']
language = ['python','java','C++','javascript']

# 生成笛卡尔积后转为DataFrame
df = pd.DataFrame(product(name, language), columns=['name', 'Language'])

方法3:通过merge关联实现

适合理解配对的底层逻辑:

import pandas as pd

name = ['John','Seen','Sam','Tom','Lisa']
language = ['python','java','C++','javascript']

# 给两个列表构造相同的临时关联键,合并后删除临时键即可
df_name = pd.DataFrame({'name': name, 'tmp': 1})
df_lang = pd.DataFrame({'Language': language, 'tmp': 1})
df = pd.merge(df_name, df_lang, on='tmp').drop('tmp', axis=1)

以上3种方法输出结果完全一致,都是你需要的姓名+全量编程语言的配对格式,最终生成的DataFrame共20行(5个姓名 × 4种语言)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:24:07