Я использую панды, чтобы исследовать набор данных с несколькими повторяющимися записями.Например:
import pandas as pd
pd.DataFrame({'ID':['001','001','002','002','002','003','003','004','004'],
'a':['Yes','Yes','Yes','No','Yes','Yes','No','No','No'],
'b':['NaN',3,'NaN',5,4,7,'NaN','NaN','NaN']})
ID a b
001 Yes NaN
001 Yes 3
002 Yes NaN
002 No 5
002 Yes 4
003 Yes 7
003 No NaN
004 No NaN
004 No NaN
Каждый дубликат ID
должен быть объединен в одну строку, в которой значения столбцов агрегированы в соответствии со следующими правилами:
если присутствует в столбце, Yes
должен заменить No
, если присутствует в столбце, число должно заменить NaN
, и если присутствует более одного числа, наибольшееномер должен быть выбран.
Ожидаемый результат:
ID a b
001 Yes 3
002 Yes 5
003 Yes 7
004 No NaN
Я пытался (и не смог) создать пользовательскую функцию, а затем использовать apply и lambda.Тем не менее, я не думаю, что это правильный подход, так как я не вижу способа, чтобы эти построчные операции работали с группой дубликатов.