pandas如何删除指定列取值重复的行并保留首个出现的行?
解决方案
Pandas 提供了内置的drop_duplicates方法可以直接实现按指定列去重的需求,默认保留首次出现的重复行,符合你的要求。
完整实现代码如下:
import numpy as np import pandas as pd # 构造测试DataFrame df = pd.DataFrame({'A':[2,3,2,2,2], 'B':[1,5,5,1,1], 'C':[1,6,6,2,1], 'D':[1,2,3,1,1]}) # 按B、C两列去重,保留第一条 df = df.drop_duplicates(subset=['B', 'C'], keep='first') print(df)
运行后输出结果:
A B C D 0 2 1 1 1 1 3 5 6 2 3 2 1 2 1
参数说明
subset:传入需要判断重复的列名列表,只有指定列的取值全部相同时才会判定为重复行keep:指定重复行的保留规则,'first'为默认值,保留首次出现的重复行;你也可以按需设置为'last'保留最后一次出现的重复行,或者设置为False删除所有重复行。
内容的提问来源于stack exchange,提问作者Drizzle
相关产品推荐
相关产品推荐

