duplicados gota pandas donde la condición

Beto :

Me gustaría df.drop_duplicates()sede fuera un subconjunto, sino también ignorar si una columna tiene un valor específico.

Por ejemplo...

                 v1      v2     v3      
ID                                                          
148         8751704.0    G      dog   
123         9082007.0    G      dog  
123         9082007.0    G      dog 
123         9082007.0    G      cat   

Me gustaría dejar duplicado [ID, v1]pero ignoran si v3es igual a catpor lo menos así:

full_df.drop_duplicates([ID, v1], inplace=True, conditional=exclude v3 = cat)

La esperanza que tiene sentido

ansev:

Utilizar boolean indexingcon Series.duplicatedy pd.Index.duplicated:

df[~(df['v1'].duplicated() & df.index.duplicated()) | df['v3'].eq('cat')]

Salida

            v1 v2   v3
ID                    
148  8751704.0  G  dog
123  9082007.0  G  dog
123  9082007.0  G  cat

si IDno es el índice:

df[~df[['ID', 'v1']].duplicated() | df['v3'].eq('cat')]

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=402378&siteId=1
Recomendado
Clasificación