User preference analysis - Kiehl's Facial Cream products

Chaoran Chen
Posted on Nov 13, 2018


About the Company:

Kiehl's is an American cosmetics brand retailer that specializes in premium skin, hair, and body care products. In contrast to its market competitors, Kiehl's is distinguished for its simple and straightforward packaging of its natural products.

Analysis Rationale:

It is easy to read a couple customer comments on the website. However, if we want to know the answer of questions such as how most of the customers feel about the product, what the biggest concern of the product is, a more system wised analysis is needed.

Pick the products we want to first focus on. Collect the customer comments from the company's website by using web scraping skill. Analyze the large size of comment data by using Python.

Technical Approach:

  • Web scraping - Python Selenium
  • Data analysis - Python Numpy, Pandas
  • Data visualization - Python Matplotlib

Please click here to connect to my Github repository containing code for this project.

Web Scraping 


Selenium Python bindings provide a convenient API to access Selenium WebDrivers like Firefox, IE, Chrome, Remote etc. The Chromedrive is used in this case analysis.

Compare to Python Scrapy , Selenium is sited to no-url change situation. That is, when we try to scrape comments  from the website, in most of the case there will be more than one page comment. When we switch to another page of comments the URL of the website doesn't change. Selenium is designed for this kind of no URL change situation while Scrapy scrapes content using different URL.

Product analysis: Facial Cream:

We could use the same scraping code (code can be found in my GitHub repository) and analysis strategy (scrape customer comments from the company's website) to analyze any Kiehl's products.

In this blog the analysis is focused on one specific product - Facial Cream.

Data collection and cleaning

Xpath was used to locate the comment.

Six fields information is collected for further analysis.

  • Customer rating value - 1 to 5 stars to show how likely the customer evaluate the product
  • Customer location - indicates where the customers are living in
  • Comment published date - shows when the customer published the comment
  • Comment title - normally customers would summarize the idea in the title
  • Comment text - includes details of customer feedback
  • Cons - in the comment text part there is an optional field names as Cons, allowing customer to put negative feedback

On the company's website, we have more than 8 years comment data of the Facial Cream product. In total, 445 rows of comments are collected for the Facial Creams.

Based on the raw data , I created two new columns to show published month and years separately. In the data analysis and visualization part we can then analyze the customer behavior according to seasons and years.

Data Visualization

Customer rating trend:

  • When we looked at the rating score, we could see that the customer evaluation of the Facial Cream product decreases every year. The entire trend of the rating score is going down.

  • After checking the average rating score, we want to see how many comments are there in each year. The counting number shows a similar trend as the rating score. Started from 2012 the comment number decreased year by year.

  • We want to see how the main complaints of the product are. Analyzed the Cons comment using World Cloud. The most frequent complain keywords are: Oily, SPF, Expensive, Heavy, Summer, Smell, Think. Based on this analysis results, customer complained about the texture of the cream. It is too heavy and oily, no SPF. It seems the cream is not a perfect option in the Summer time.

  • In order to verify whether the different seasons play a role of the customer experience, we analyzed the comment rating score and rating number based on seasons. We noticed that in the Summer time we only have 1/3 ratings compare to Autumn and Spring time. This verified our finding that people interested less in this product in the Summer time.


  • Based on the rating score trend and comment numbers, customers give more negative feedback about the product than old days. With a lower rating score , we also got fewer customer commented on the product in more recent years. We can make an assumption that the fewer comment it is, the fewer orders of the product the company had.
  • People live in the warmer area may not be the best target customers for this product.
  • In the summer time, the company may not want to put too much advertisement on this product, instead a more lightweight fresh cream may earn a better customer feedback.
  • The analysis based on locations is not completed yet. Since we also have the location info, a further analysis based on different locations information may give us some clearer insight, so we can tell which cities customers like this Facial Cream better.
  • We can follow the same analysis procedure to analyze more Kiehl's products.

About Author

Chaoran Chen

Chaoran Chen

Problem solving oriented. Always ready for challenges. Chaoran has 7 years work experience in the data analysis, programming and tech support areas with her solid technical background. She likes to cook. She is also a big fan of...
View all posts by Chaoran Chen >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

2019 airbnb alumni Alumni Interview Alumni Spotlight alumni story Alumnus API artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Big Data bootcamp Bootcamp Prep Bundles California Cancer Research capstone Career citibike clustering Coding Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Industry Experts Job JP Morgan Chase Kaggle lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Open Data painter pandas Portfolio Development prediction Programming PwC python python machine learning python scrapy python web scraping python webscraping Python Workshop R R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest recommendation recommendation system regression Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Tableau Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping What to expect word cloud word2vec XGBoost yelp