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

如何从元组列表与普通列表生成含多列的DataFrame?

解决方案:合并不同格式列表生成目标DataFrame

我来帮你搞定这个问题,其实有好几种灵活的方法可以实现你的需求,不管后续遇到什么格式的列表,都能轻松适配:


方法1:先转l1为DataFrame,再添加l2作为新列

这应该是最直观的方式,和你现在的操作衔接起来也最顺畅:

import pandas as pd

l1 = [(1,2),(3,4),(5,6)]
l2 = [7,8,9]

# 先把元组列表转成DataFrame
df = pd.DataFrame(l1, columns=['c1', 'c2'])
# 直接把l2赋值给新列c3
df['c3'] = l2

这样就能得到你想要的结果,而且如果之后有其他类似的一维列表要添加,直接用df['新列名'] = 新列表就可以。


方法2:构造DataFrame时一次性传入所有数据

如果你想一步到位,可以直接把l1拆分成两列,再和l2组合成字典传入DataFrame:

import pandas as pd

l1 = [(1,2),(3,4),(5,6)]
l2 = [7,8,9]

# 把l1的元组拆成两个独立的列表,再和l2一起构造字典
df = pd.DataFrame({
    'c1': [x[0] for x in l1],
    'c2': [x[1] for x in l1],
    'c3': l2
})

这种方法适合一开始就明确所有列数据的情况,格式更清晰,也方便扩展更多列。


方法3:用pd.concat合并两个DataFrame

如果你的l2之后可能是其他结构(比如也是元组列表或者另一个DataFrame),用pd.concat会更通用:

import pandas as pd

l1 = [(1,2),(3,4),(5,6)]
l2 = [7,8,9]

# 把l1转成DataFrame,把l2转成单列DataFrame
df1 = pd.DataFrame(l1, columns=['c1', 'c2'])
df2 = pd.DataFrame(l2, columns=['c3'])

# 按列合并
df = pd.concat([df1, df2], axis=1)

这个方法的优势在于不管l2是什么格式,只要能转成DataFrame,就能轻松合并,完美适配你说的「处理多种不同格式列表」的需求。


测试上面的方法,最终输出的DataFrame都是你想要的样子:

c1  c2  c3
0   1   2   7
1   3   4   8
2   5   6   9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:31:02