我想基于一个子集,但也忽略列是否具有特定值。df.drop_duplicates()例如。。。 v1 v2 v3 ID 148 8751704.0 G dog 123 9082007.0 G dog 123 9082007.0 G dog 123 9082007.0 G cat 我想删除重复,但忽略如果等于这样的东西:[ID, v1]v3catfull_df.drop_duplicates([ID, v1], inplace=True, conditional=exclude v3 = cat)希望这是有道理的
2 回答
绝地无双
TA贡献1946条经验 获得超4个赞
df[~(df['v1'].duplicated() & df.index.duplicated()) | df['v3'].eq('cat')]
输出
v1 v2 v3
ID
148 8751704.0 G dog
123 9082007.0 G dog
123 9082007.0 G cat
如果不是索引:ID
df[~df[['ID', 'v1']].duplicated() | df['v3'].eq('cat')]
九州编程
TA贡献1785条经验 获得超4个赞
您可以使用按位和链接另一个条件,以确保它不是:catcat
df[~(df.reset_index().duplicated(['ID', 'v1']) & df.v3.ne('cat').values).values]
v1 v2 v3
148 8751704.0 G dog
123 9082007.0 G dog
123 9082007.0 G cat
添加回答
举报
0/150
提交
取消
