У меня есть два кадра данных: мужской и женский
male = pd.DataFrame(np.array([[777, 'male', 9]
,[999, 'male', 9],[999, 'male', 9]])
,columns=['a', 'b', 'c'])
female=pd.DataFrame(np.array([[119, 'female', 9],[777, 'female', 9]
,[777, 'female', 9],[999, 'female', 9]])
,columns=['a', 'b', 'c'])
male:
a b c
0 777 male 9
1 999 male 9
2 999 male 9
female:
a b c
0 119 female 9
1 777 female 9
2 777 female 9
3 999 female 9
Мне нужно удалить общую часть из них обоих, но с одинаковым количеством строк с учетом только столбцов a and c
, например, еслиОДНА строка имеет то же значение (a и c), что и во втором кадре данных, удалите обе (2 строки, даже если совпадают несколько строк)
Я пытался использовать
df=pd.concat([male,female]).drop_duplicates(subset=['a','c'])
print(df)
a b c
0 777 male 9
1 999 male 9
0 119 female 9
my expected output is:
a b c
2 999 male 9
0 119 female 9
2 777 female 9
в качестве результата iнеобходимо удалить строки, которые существуют во втором кадре данных только один раз, drop_duplicates () берет все, что существует более одного раза. Я забочусь только об отбрасывании дубликатов между фреймами данных