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

如何使用Pandas删除列中字符串仅顺序不同的重复行

实现方案

要实现这种「字符串组成元素完全相同、仅顺序不同即判定为重复」的去重需求,核心逻辑是对目标列的字符串按分隔符拆分后排序,生成统一的去重标识键,再基于键去重即可,完整可运行代码如下:

import pandas as pd

# 构造原始DataFrame
data = {'item':['dl3_hr_rank.r0','hr_dl3_rank.r0','hr_kl3_rank.r0',
                'kl3_hr_rank.r0','hcrfr_hr_rank.r0',
                'hr_hcrfr_rank.r0','hcfr_hkfr_rank.r0_wp','hkfr_hcfr_rank.r0_wp',
                'hr_krl2_rank.r0_wp','krl2_hr_rank.r0_wp',],
'result':[1.17,1.17,1.17,1.17,1.13,1.13,1,1,1,1]}
df = pd.DataFrame(data)

# 生成去重用的辅助键:按下划线拆分字符串→排序片段→重新拼接
df['dedup_key'] = df['item'].apply(lambda x: '_'.join(sorted(x.split('_'))))
# 基于辅助键去重,保留首次出现的行,删除辅助键后重置索引
df_dedup = df.drop_duplicates(subset='dedup_key', keep='first').drop(columns='dedup_key').reset_index(drop=True)

# 输出去重结果
print(df_dedup)

运行后输出的结果和你期望的示例完全一致。


插入表格问题解决方案

如果需要将去重后的DataFrame直接转为标准Markdown表格插入文档,调用pandas内置方法即可:

print(df_dedup.to_markdown(index=False))

直接复制输出的内容即可使用,无需手动排版调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:48:04