How to perform prediction when some features have missing values?
You should look into &quot;missing values&quot;. This is an entire research field in itself.
First, you need to identify the type of missing values:

They can be missing purely at random.
Whether they are missing or not is itself a useful feature, and should be treated as a class of its own.

(Those two are the best case scenarios.)

Whether they are missing or not depends on the underlying (unknown) value. For example, a thermometer might fail occasionally if the temperatures get too high. In your case, certain types of companies might be more likely to not share their information.
Information might be missing specifically to mislead you, the data analyst. This is the worst possible scenario, and there is not much you can do.

So, what do you do about it? A few typical options:

Throw out all the rows with missing data: we do not have enough information about these companies.
Throw out all the columns with missing data: this field is not reliably measurable and we shouldn't use it.
Try to guess the missing values. This can be done if the amount of missing data is small. Either you train a predictive model based on the non-missing data, or you fill in the median for that type of row, or you fill in the value of the &quot;closest&quot; matching row. This can be dangerous.
Some algorithms are OK with missing data. Check the documentation for your models and algorithms to see how they deal with missing values.