Is it ok to fill a pandas dataframe with NaN values?
It depends on what problems you are afraid of:

regarding &quot;technical&quot; issues, it should be ok having NaNs in your dataframe and, afterwards, applying the pd.isna(column_name) per attribute to get a boolean mask to find those unknown values per column, more info here
in case your problem is not knowing the actual values, one option is imputation, but not all types of variables are easily imputable (neither it makes sense to impute all of them)