Data Analysis Great Coffee: Breaking down the coffee bean

Posted on Nov 4, 2019
The skills I demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.

No matter what lies ahead and how the day is intended to unfold, a good chunk of the world's population NEED to begin their day with … coffee! That uplifted persona after the very first sip is nothing short of fascinating.Β  What is it about this beverage that kickstarts us? This project is the commencement of my journey on comprehending the characteristics of a great "Cup of Joe"!


Main ingredients

As soon as I began my search for knowing more, I was quickly humbled by how much lies behind what might be considered just another commodity… Taking baby steps, I steered my focus to to two simple aspects: what are the main components of coffee and on what dimensions do coffee connoisseurs evaluate coffee. I found both, among more, on and used Scrapy to obtain the data I needed for my initial analysis.

Coffee Review conducts blind, expert cuppings of coffees across the globe and report their findings in the form of 100-point reviews, while educating readers about coffee with in-depth tasting reports each month, themed around coffee origins, issues, and factors that influence coffee quality and character.




The data elements required for the analysis were present in the Advanced Search page of the website where coffees were listed in reverse chronological order by review date. Each listing on this page contained the product that was reviewed along with key fields such as roaster, review date and price. The complete review along with other characteristic fields were a click away labelled "Read Complete Review".

Having deciphered the pattern to derive all pages contained in the search as well as the urls for the complete review page corresponding to each coffee review, I chose Scrapy as the framework over Selenium.

I developed a Scrapy items script to capture the elements required and a Scrapy spider to crawl the html pages present in the Advanced Search section. The overall package also contained the code for the settings and pipelines scripts to execute the workflow for the scrapping process.

Elements were finally extracted in a csv file that was them imported into Python dataframes to cleansing and analysis. Visualizations were created using Matplotlib and Seaborn.


At a glance...


Coffee Characteristics


Essential to any coffee, these characteristics were the primary focus of the reviews conducted by Coffee Review. These traditional set of 5 are the standard descriptive categories evaluated.

Aroma: Indicative of how intense and pleasurable is the fragrance when the nose first descends over the cup

Acidity: At best it is a sweetly tart vibrancy that lifts the coffee and pleasurably stretches its range and dimension. Without acidity coffee is dull and lifeless.

Body: the sensation of heaviness, richness, or thickness and associated texture when one tastes coffee

Flavor and Aftertaste: Include everything not suitably described under the categories aroma, acidity and body.


Not surprisingly, all the characteristics discussed above showed a strong correlation to the rating. However, acidity and flavor stood out in their correlations to the rating, relative to others. For each for 5 characteristics, ratings were reflective of both quantity (intensity) and quality (pleasantness).


Roast concentration of top-rated coffees


A highly rated coffee secured a review rating of 94 and above. Curious to see the breakdown of such coffees based on roast, I generated this bar plot to help aid the analysis. By a significant margin, Medium-Light seems to be the most frequently occurring roast in highly rated coffees, followed by the Medium roast while Dark constituting the least occurring roast among such highly rated coffees.

Another lens on these roast categories as compared to their respective review rating reveals that the degree or darkness of roast dramatically affects a coffee's flavor profile. Interesting to note on the Medium-Light aroma is the rating's almost equal distribution on each side of its median. A majority of the coffees reviewed have their ratings lying between the late 80's and early 90's, with a handful among the top 20. for perspective, I've positioned some of our favorite household brands along this distribution, the likes which contain Starbucks, Folgers, Peet's Coffee, Maxwell House and Stumptown.


Review Score Concentration

A majority of the coffees reviewed have their ratings lying between the late 80's and early 90's, with a handful among the top 20. for perspective, I've positioned some of our favorite household brands along this distribution, the likes which contain Starbucks, Folgers, Peet's Coffee, Maxwell House and Stumptown.


What's brewing

Some of my immediate next steps to further this initial assessment and study include:

  • What makes up acidity? Analysis of its components and identification of biggest drivers.
  • Investigate how coffee contributes to flavor. Interesting to see how perception data can be collected and analyzed…
  • Incorporate location data to investigate bean characteristics that are determined by environmental conditions


So... What's your cup of tea?!



Coffee Review:


About Author

Ashish Sharma

Ashish Sharma is currently a Fellow at the New York City Data Science Academy NYCDSA. Enthusiastic about helping companies elevate their data capabilities and delivering value, Mr. Sharma has worked as a Business and Technology Consultant through most...
View all posts by Ashish Sharma >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI