Prediction based on more dataframes
First question - predicting user score:
One approach addressing this problem is using collaborative filtering.
Where the basic idea is 'placing' each entity type(users, restaurants) in a vector space, where a distance function can be utilized.
This way you can learn that if user1 is similar(short distance) to user2 and restaurant1 is similar to restaurant2 then its probable that both users will give similar score to both restaurants.
 One popular algorithm that uses collaborative filtering is the 'Matrix Factorization' - the matrix factorization example is in the bottom of the article.

Second question - handling categorical variables:
Using one-hot-encoding for handling categorical data is a common methodology.
I personally love using pandas.get_dummies function.