Dataset : Handling rows where some column value is not applicable
You can use a model that can handle NaN values. Most commonly this would be something based on decision trees. I recommend LGBM and XGBoost.

Decision trees also work well when these kind of values are set outside of the range for this feature, i.e. setting it to something like -999. This alternative is better if you want to use models from scikit-learn since NaNs are not supported there.