I am going to propose a very pragmatic protocol based on the following rationale:
a high number of high average ratings should be ranked very high
a low number of high average ratings probably should be ranked high
a low number of low average ratings probably should be ranked low
a high number of low average ratings probably should be ranked very low
I tried using different scaling methods, such a robust scaling, normalising distributions etc. To no avail.
I did it. Turns out it was ridiculously simple.
I divided each value in respective datasets by the dataset total mean. This then gave each dataset a mean of 1, making the signal much more comparable. Best of all, I feel like this is a pretty valid ...
It really depends on what you define as popular, and what you want to do with it. Also what is your optimization goal? In e-com for example, a common definition for popular is the revenue driven from this product, which incorporates the number of times the item has been purchased and its price. And this is also what you are trying to optimize for, maximize ...