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

如何在Python DataFrame中按类别将两列合并为嵌套元组列表

按分组合并Pandas列生成元组列表

给定如下DataFrame:

import pandas as pd
df = pd.DataFrame({"cat":['a', 'a', 'b', 'c'],"A":[5, 6, 1, 4],"B":[7,8, 12, 5]})

其结构为:

cat  A   B
0   a   5   7
1   a   6   8
2   b   1   12
3   c   4   5

需求是按cat列分组,将每组对应行的A和B值合并为元组,最终得到嵌套列表[[(5, 7), (6, 8)], [(1, 12)], [(4, 5)]],可以通过以下两种方式实现:

方法一:分组后直接生成元组列表

利用groupby结合apply,对每组的A、B列直接生成元组并收集为列表:

result = df.groupby('cat').apply(lambda x: list(zip(x['A'], x['B']))).tolist()
print(result)
  • groupby('cat'):按cat列的值分组
  • lambda x: list(zip(x['A'], x['B'])):对每组数据,用zip将A和B的对应元素配对成元组,再转为列表
  • .tolist():将分组后的Series对象转换为目标嵌套列表

方法二:先构造元组列再聚合

先为每行生成A和B的元组,再按cat分组聚合为列表:

# 新增列存储每行的A、B元组
df['AB_tuple'] = list(zip(df['A'], df['B']))
# 分组聚合并转成嵌套列表
result = df.groupby('cat')['AB_tuple'].agg(list).tolist()
print(result)

这种方式更直观,适合需要保留元组列做后续处理的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:30:42