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

在Pandas中基于同校条件返回不重复的索引对

解决Pandas DataFrame获取同校人员不重复索引对的问题

直接用groupby结合itertools.combinations就能搞定,逻辑简单且高效,适合处理千级数据:

实现代码

import pandas as pd
from itertools import combinations

# 假设你的DataFrame是df,包含Name和university列
# 示例数据(可替换为你的真实数据)
data = {
    'Name': ['Adam', 'Eva', 'Bran', 'Mike', 'Lily'],
    'university': ['剑桥大学', '剑桥大学', '牛津大学', '牛津大学', '斯坦福大学']
}
df = pd.DataFrame(data)

# 生成目标索引对列表
same_university_pairs = []
# 按大学分组遍历
for _, group in df.groupby('university'):
    # 对组内索引生成两两组合(自动排除[1,0]这类重复对)
    idx_combinations = combinations(group.index, 2)
    # 转成列表格式加入结果
    same_university_pairs.extend([list(pair) for pair in idx_combinations])

print(same_university_pairs)
# 输出:[[0, 1], [2, 3]]

关键说明

  • groupby('university')精准把同校人员归为一组,避免跨校匹配
  • combinations生成的是无重复的有序索引对(只保留i<j的组合),完全符合你要避免重复的需求
  • 迭代器式的处理逻辑,即使数据超1000条,内存占用也很低,运行效率有保障

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:47:15