Giving a score (from 1 - 5) using weights
If I understand the question correctly, this 0-5 weighting is quite arbitrary and is based on your criteria, right? e.g. how loyal some customer is. In this case, a practical way of doing it could be the following:


Transform values of all features to be on the range (0,5). In order to achieve this normalize them to take values into (0, 1) and then multiply with 5 (see here for normalization with pandas)
Apply weights on the features: each weight should be in the range (0,1).
For each customer, multiply weights with transformed feature values (in a similar way as you showed) and calculate the average. This should be in (0,5).


In case that weights represent something that you can get past information on E.g. weights might mean how likely it is that the certain customer would be interested in some product and you can have access on historical information about whether customers with those characteristics (features) have bought it in the past, you can then train a probabilistic classification model and then rescale this probability into (0, 5) in order to turn it into weights. It this context, you might find useful this and this discussions.