如何仅对Pandas DataFrame中指定值的ID进行去重?
实现指定ID的选择性去重
解决思路
把数据拆成两部分分别处理:
- 非目标ID的记录:直接全部保留
- 目标ID的记录:按
ID去重,只保留第一条
最后合并两部分数据,还原接近原始数据的顺序。
代码实现
import pandas as pd # 原始DataFrame df = pd.DataFrame({ 'ID': [1, 2, 3, 1, 2, 3], 'Value': ['A', 'B', 'A', 'B', 'C', 'A'] }) # 指定需要去重的目标ID target_id = 1 # 处理非目标ID的记录:全部保留 non_target_rows = df[df['ID'] != target_id] # 处理目标ID的记录:按ID去重,保留第一条 target_unique_rows = df[df['ID'] == target_id].drop_duplicates(subset='ID', keep='first') # 合并数据并恢复原始顺序(sort_index保证顺序和原数据一致) result_df = pd.concat([target_unique_rows, non_target_rows]).sort_index().reset_index(drop=True) # 输出结果 print(result_df)
输出结果
ID Value 0 1 A 1 2 B 2 3 A 3 2 C 4 3 A
内容的提问来源于stack exchange,提问作者MikeP
相关产品推荐
相关产品推荐

