Analysing Cape Town Restaurants using Zomato Data

Zomato is a mobile and web app used by foodies to find good restaurants in an ever-growing number of cities around the world. Users of the app can find a restaurant via search and filtering tools and submit ratings, reviews and pictures of their experience at the establishment. The community of users form a social network and one can follow other foodies and comment on their posts and reviews.

Zomato makes their data partially available through an API for developers and other third parties to consume. We can use this rich data source to discover trends amongst Cape Town restaurants and by combining it with other data, offer useful insights to foodies and restaurateurs alike.

I hope this analysis allows some hidden suburbs to be discovered through the use of aggregated data and to uncover, at least partially, the relationship between ratings, location, cuisine types and price points.

If you would like to reproduce or extend the analysis, you can access the project source code here. The project github page contains all the technical details about how this data was extracted, prepared and utilised.

Assumptions, Caveats and Limitations

There are some limitations in this analysis, due in part to limitations imposed by the Zomato API:

Data Overview

After cleaning and preparing the data, we have 1354 restaurants, however, there are 81 restaurants with a zero rating. This does not mean they are bad, it means there aren’t yet enough votes to trigger a rating. In addition, there are 17 restaurants with R0 average cost for two, likely a data-entry error. While I could apply a mean or median value to these restaurants based on their cuisine category and/or location, this may be entirely inaccurate, so I’ll rather remove them. This leaves us with 1258 restaurants in the analysis.

There are also 150 restaurants who identify themselves as “Drinks Only” with no other cuisine type offered - Bars, Cocktail Lounges etc. We will keep these in the main data set and also perform some specific analysis on them later.

We’ll investigate our data at a regional and suburb level to see if we can find interesting trends between rating, the average cost for two, cuisine type and location.

Zomato assigns a price range to each restaurant. Sometimes it will be more convenient for me to use this instead of the average cost for two. It is a 1 to 4 scale and correlates with the following average costs for two people:

The data was pulled in July 2018.

Region and Suburb Analysis

Let’s start with overall regional ratings and average cost for two comparisons.

It’s probably no surprise that the Atlantic Seaboard, City Bowl and Winelands score the best and are the most expensive. All of the listed Overberg restaurants are in Hermanus, a well-known tourist destination which likely contributes to their high average cost.

Let’s compare the City Bowl, Atlantic Seaboard and Winelands with the rest of Cape Town grouped together and break things into full-meal restaurants and drinks-only establishments like bars and cocktail lounges.

The Winelands is the most expensive region to eat, but interestingly, it’s bars are cheaper than everywhere else. This is likely due to a large number of student bars in Stellenbosch.

Regional info is useful, but if we really want to get an understanding, we need to go down to the suburb level. First, let’s take a look at overall averages.

Here we see that Mouille Point has the highest rating but it’s based on a single restaurant so hardly counts as a winner. It’s hard to make sense of all this data so we’ll unpack it by asking more specific questions.

We’d like to know which suburbs, if any, have 50% or more restaurants with a top rating. By top I mean it’s been classified as Good, Very Good, or Excellent on Zomato. Likewise, I’d like to know which suburbs have 50% or more restaurants marked as Poor or Average. Turns out, there are some surprises. I’ve only shown suburbs that have 15 or more listed restaurants in Zomato, otherwise, we’d be skewing the results (for example, Mouille Point, as already mentioned, has a really high rating, but it’s based on a single restaurant which doesn’t give us reliable info).

We’ll compare each suburbs overall average cost with the average cost of its top-rated (Good, Very Good, Excellent) restaurants.

De Waterkant seems like a good value for money suburb and the top-rated restaurants in Newlands are actually cheaper than the average. Camps Bay, Constantia and Woodstock are the most pricey across the board.

Let’s take a look at suburbs with 50% or more being rated Poor or Average.

Surprising to see Franschhoek and Stellenbosch in this list, but one has to bear in mind that they have restaurants across all price ranges, not just fine-dining, so invariably, not all of them will be great. Stellenbosch, in particular, has a lot of restaurants (around 125 listed) and student bars, so it would be amazing but unlikely to maintain a top rating for 50% or more of them.

Now let’s break down the top 10 rated suburbs into their respective price brackets. The suburbs are shown in rating order, with Constantia being number one and Paarl number 10. Each red dot is a restaurant.

Constantia’s R300+ range restaurants dominate it’s high ratings, leading to a higher average overall. Camps Bay also has most of its restaurants in the R300+ range however they don’t score as high as those in Constantia. The CBD has a broad range of options as you’d expect.

Cuisine Analysis

It would be useful to know which suburbs have the greatest variety of cuisines on offer, across different price ranges. By variety, we mean the count of different kinds of cuisines in the suburb. If a suburb has two restaurants with one listed as Sushi, Japanese, Asian and another as Japanese, Asian, then the variety count for the suburb would be 3 since there are 3 types of cuisine represented in this suburb.

Stellebosch has the most variety in the lower end and upper end. This makes sense since it’s both a student town and fine-dining mecca with a lot of wine estates. Claremont and Table View stack up well in the mid-range, good bets for a mid-week night out.

Before we break down the most popular cuisines, it’s important to think about how we get these ratings in the first place. We mentioned that ratings are derived from votes (by some unknown but weighted algorithm), thus knowing which types of cuisine people vote on the most, gives us a sense of what people are most passionate about, whether the votes are positive or negative. It makes sense for us to find the best and worst suburbs for the cuisines which are most voted on.

Let’s take a look at the votes and then we’ll unpack cuisines a bit more. Here I’m only showing cuisine types that have 10 or more establishments so we get a realistic average for each. Many of the ethnic cuisine types (Moroccan, Ethiopian etc.) have far fewer establishments, so we’ll look at these in more detail later.

Asian, Japanese and Sushi seem to attract the most votes however these three are highly correlated with each other, i.e. a Sushi restaurant will also be marked as Japanese and Asian. An Asian restaurant, however, could be marked as Chinese, so we’ll use Asian when we search for top and bottom suburbs.

The cuisines which attract the most votes are, in order, Japanese, Asian, Sushi, Seafood, American, Mexican, German, Mediterranean, Grill and Deli. We’ll show the top 5 and bottom 5 suburbs for Asian, Seafood, Mexican and Grill as well as Burgers, Pizza and Cafes which are popular cuisines choices.

Newlands, Wynberg and Sea Point seem to be better value for money.

Pinelands, perhaps surprisingly, is a good place for Seafood at a reasonable cost.

Tamboerskloof for Mexican!

Green Point provides the best steaks at a slightly better price than Melkbosstrand.

While Wynberg has the top-rated cafes, it’s not cheap. Zonnebloem scores nearly as high while being more affordable.

Sea Point is tops while Diep River has some decent ratings at a much better price.

Pinelands showing up again, however, Hout Bay seems to be the best spot for pizza based on its price range.

Now we’re going to choose a few major regions of the city. Then we’ll find the most common 15 cuisines in each and count the top and bottom rated restaurants they have for each cuisine. This gives us an impression of what’s on offer in each region and how likely you are to have a good meal.

Cafe’s are strong in the CBD and Gardens and slightly less so in Sea Point and Green Point. It seems hard to create a top ranking bar in the CBD and Stellenbosch. We saw earlier that Claremont has a lot of variety although this graph shows us that there aren’t a lot of options per cuisine type. Durbanville doesn’t give too much joy and fast food seems to be rated poorly all across the city.

Franchises and Fast-Food Outlets

Speaking of fast-food, let’s take a look at how these outlets stack up, as well as investigating the top 10 non-fast-food franchises.

Ethnic Restaurants

We mentioned earlier that Ethnic restaurants tend to occur in small numbers (except some major types like Greek, Italian etc.), often there are only one or two in the entire city. I wanted to know if these are cheaper or more expensive than the average.

While the ratings are evenly spread it seems that Ethnic restaurants are more expensive on average and a few outliers are really expensive.

Wine Estates, Hotels and Malls

Although not all the wine estates in Cape Town are listed in Zomato, it would still be nice to see how the different Winelands regions compare. Likewise we can compare hotels and malls in different regions. In the case of hotels, the data was aggregated, so if a hotel has two different restaurants on its premises, each with their own rating, then these were averaged to yield a single dot on the graph below. We also can’t be sure that hotel ratings are based entirely on their restaurants - it could be that people staying at the hotel might use Zomato as a way to rate their entire experience and not just the food.

Stellenbosch has a wide range of ratings and average costs, not surprising given how many wine estates there are in that region. Constantia estates seem to rate quite well, although there aren’t that many listed.

While restaurants at City Bowl and Atlantic Seaboard hotels seem to attract a wide range of ratings, Southern Suburbs options may be slightly ahead overall.

Mall dining isn’t exactly what we most look forward to, but the Atlantic Seaboard and City Bowl malls tend to rate a bit better with some costly options at small, boutique malls that don’t have a food court.


Let’s wrap this up with a summary of our findings:

Next Steps

There are a few ways I’d like to extend this analysis:

Please do let me know how this analysis can be extended and improved.

comments powered by Disqus