如何移除DataFrame中值对重复或互为逆序的冗余行?
处理DataFrame中值对重复及逆序冗余行的方法
核心思路
通过对每行的val1和val2进行排序,生成一个统一的标识键,利用这个键可以将正序、逆序以及完全重复的行归为同一组,再通过去重操作保留每组的唯一一行。
具体实现步骤
- 构造示例DataFrame
import pandas as pd df = pd.DataFrame({ 'val1': ['"a"', '"b"', '"c"', '"c"', '"m"'], 'val2': ['"b"', '"a"', '"m"', '"m"', '"c"'] })
- 生成排序后的统一标识
对每行的两个值进行排序,生成元组作为唯一分组键:
df['sorted_pair'] = df.apply(lambda row: tuple(sorted([row['val1'], row['val2']])), axis=1)
- 去重并清理临时列
根据生成的标识键去重,保留每组首次出现的行,最后删除临时列:
result_df = df.drop_duplicates(subset='sorted_pair').drop(columns='sorted_pair')
最终结果
执行后得到的result_df即为期望输出:
val1 val2 0 "a" "b" 2 "c" "m"
内容的提问来源于stack exchange,提问作者user12314164
相关产品推荐
相关产品推荐

