Мне известны следующие варианты:
1) Отбросить строки с недостающими данными (либо не использовать столбцы с большим кол-вом NaN в качестве параметра для модели). По возможности, разумеется
2) Если влияние параметра с большим кол-вом NaN на результат модели достаточно высоко, то нужно продолжить искать информацию чтобы заполнить недостающие данные. Хороший датасет, результат кропотливого труда.
3) Воспользоваться методом заполнения fillna(). Здесь важным моментом будет выбор чем заполнять NaN? (средняя величина и т. д.)
По всем трем пунктам выпор той, или иной стратегии обработки отсутствующих значений это больше практическая сторона профессии.
Но в самом начале работы с отсутствующими данными нужно обязательно ответить на вопрос: Это значение отсутствует, потому что оно не было записано, или потому, что оно не существует? В зависимости от ответа на этот вопрос выбираются конкретные действия с отсутствующими значениями.