Я получил следующий фрейм данных в Python:
d = pd.DataFrame({'id': [1, 1, 1, 2, 2, 3],
'col1': ['normal', 'well', 'normal', 'normal', 'well', 'normal'],
'col2': ['bad', 'normal','normal', 'normal', 'normal', 'bad']})
Я бы хотел свернуть по id, но оставить в столбцах строки, отличные от 'normal' или 'normal', если больше ничего нет ('хорошо' или 'плохо'). Примерно так:
result = pd.DataFrame({'id': [1, 2, 3],
'col1': ['well', 'well', 'normal'],
'col2': ['bad', 'normal', 'bad']})
Я думал о сортировке, а затем об использовании groupby и .first, но не знал, как получить желаемые уровни вверху в каждом столбце.