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

如何删除pandas DataFrame中列值顺序颠倒的重复行

实现方案

核心思路是生成不区分队伍顺序的标准化唯一标识,再基于该标识去重,性能远高于逐行遍历判断。
假设你的对阵信息存储在名为matchup的列中,如果实际列名不同,替换对应位置的列名即可。

步骤1:拆分对阵列得到两个队伍

按分隔符/把对阵列拆分为两个单独的队伍列:

import pandas as pd

df[['team1', 'team2']] = df['matchup'].str.split('/', expand=True)

步骤2:生成标准化唯一键

常规数据量(10万行以内)用apply即可:

对每一行的两个队伍名排序后重新拼接,保证不管队伍顺序如何,同一个对阵生成的键完全一致:

df['match_key'] = df.apply(lambda x: '/'.join(sorted([x['team1'], x['team2']])), axis=1)

大数据量(10万行以上)推荐用numpy向量化操作,性能提升10倍以上:

import numpy as np

arr = np.sort(df[['team1', 'team2']].values, axis=1)
df['match_key'] = arr[:, 0] + '/' + arr[:, 1]

步骤3:按唯一键去重

保留每组重复数据的第一行(可修改keep参数调整保留规则),最后删除临时生成的辅助列即可:

df = df.drop_duplicates(subset='match_key', keep='first').drop(columns=['team1', 'team2', 'match_key'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:09