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

如何使用Pandas按班级聚合多行学生数据生成两两配对的字符串单元格

Pandas实现班级内学生无重复两两配对的最简方法

直接借助itertools.combinations配合Pandas的groupby即可实现,不需要复杂的笛卡尔积再过滤操作,代码如下:

首先导入依赖库、构造示例数据:

import pandas as pd
from itertools import combinations

# 构造原始数据集
df = pd.DataFrame({
    'Class': [1,1,1,1,1,2,2,2],
    'Students': ['A','B','C','D','E','F','G','H']
})

核心处理代码:

# 按班级分组后取组内两两不重复组合,拼接为逗号分隔的字符串
result = df.groupby('Class')['Students'].apply(
    lambda x: pd.Series([','.join(pair) for pair in combinations(x, 2)])
).reset_index()\
 .rename(columns={0: 'Students'})\
 .drop(columns='level_1')

combinations(x, 2)会自动生成序列内长度为2的不重复无序组合,刚好符合配对需求,不会出现(A,B)和(B,A)这类重复配对。运行后输出的result就是目标格式的结果,你问题里给出的示例结果包含重复行属于输入笔误,上述代码生成的结果完全没有重复配对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:18:04