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

如何将DataFrame的两列数值合并为元组列?

在Pandas DataFrame中创建元组列的几种方法

嘿,这个需求其实挺常见的,我给你分享几个简单易行的方法,直接就能用~

首先假设我们有这样一个示例DataFrame:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

方法1:用zip函数(最推荐,效率最高)

这是我平时用得最多的方法,因为它是向量化操作,比逐行循环快很多,代码也极简:

df['tuple_col'] = list(zip(df['A'], df['B']))

原理是zip会把两列的对应元素一一配对,再转成列表赋值给新列就行。

方法2:用apply配合lambda函数

如果你需要更灵活的自定义逻辑(比如对值做处理后再打包),可以用apply:

df['tuple_col'] = df.apply(lambda row: (row['A'], row['B']), axis=1)

这里axis=1表示按行处理,lambda函数把每行的A、B值打包成元组。不过要注意,当数据量很大时,apply的效率不如zip哦。

方法3:用agg聚合函数

如果要处理多列(比如3列及以上),用agg会更简洁:

df['tuple_col'] = df[['A', 'B']].agg(tuple, axis=1)

直接指定聚合函数为tuple,按行把选中的列值打包成元组。

处理后的结果

执行任意一种方法后,你的DataFrame会变成这样:

A  B tuple_col
0  1  4    (1, 4)
1  2  5    (2, 5)
2  3  6    (3, 6)

小提醒:如果你的列里有缺失值(NaN),打包后的元组会保留NaN,比如某行A是NaN,那元组就是(NaN, 5),这是正常的行为哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:06:57