iPhone Sales Analysis using Python

Apple iPhones are among the top-selling smartphones worldwide. There is huge competition among smartphone brands in India, where you can get the latest technology in a smartphone at half the price of an iPhone. Still, there are high sales of iPhones in India. So if you want to analyze the sales of iPhones in India, this article is for you. In this article, I will take you through the task of iPhone Sales Analysis using Python.

iPhone Sales Analysis using Python

For the iPhone sales analysis task, I have collected a dataset from Kaggle containing data about the sales of iPhones in India on Flipkart. It will be an ideal dataset to analyze the sales of iPhones in India. You can download the dataset from here.

Now let’s import the necessary Python libraries and the dataset to get started with the task of iPhone sales analysis:

import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go

data = pd.read_csv("apple_products.csv")
print(data.head())
                               Product Name  \
0         APPLE iPhone 8 Plus (Gold, 64 GB)   
1  APPLE iPhone 8 Plus (Space Grey, 256 GB)   
2      APPLE iPhone 8 Plus (Silver, 256 GB)   
3           APPLE iPhone 8 (Silver, 256 GB)   
4             APPLE iPhone 8 (Gold, 256 GB)   

                                         Product URL  Brand  Sale Price  \
0  https://www.flipkart.com/apple-iphone-8-plus-g...  Apple       49900   
1  https://www.flipkart.com/apple-iphone-8-plus-s...  Apple       84900   
2  https://www.flipkart.com/apple-iphone-8-plus-s...  Apple       84900   
3  https://www.flipkart.com/apple-iphone-8-silver...  Apple       77000   
4  https://www.flipkart.com/apple-iphone-8-gold-2...  Apple       77000   

     Mrp  Discount Percentage  Number Of Ratings  Number Of Reviews  \
0  49900                    0               3431                356   
1  84900                    0               3431                356   
2  84900                    0               3431                356   
3  77000                    0              11202                794   
4  77000                    0              11202                794   

                Upc  Star Rating   Ram  
0  MOBEXRGV7EHHTGUH          4.6  2 GB  
1  MOBEXRGVAC6TJT4F          4.6  2 GB  
2  MOBEXRGVGETABXWZ          4.6  2 GB  
3  MOBEXRGVMZWUHCBA          4.5  2 GB  
4  MOBEXRGVPK7PFEJZ          4.5  2 GB  

Before moving forward, let’s have a quick look at whether this dataset contains any null values or not:

print(data.isnull().sum())
Product Name           0
Product URL            0
Brand                  0
Sale Price             0
Mrp                    0
Discount Percentage    0
Number Of Ratings      0
Number Of Reviews      0
Upc                    0
Star Rating            0
Ram                    0
dtype: int64

The dataset doesn’t have any null values. Now, let’s have a look at the descriptive statistics of the data:

print(data.describe())
          Sale Price            Mrp  Discount Percentage  Number Of Ratings  \
count      62.000000      62.000000            62.000000          62.000000   
mean    80073.887097   88058.064516             9.951613       22420.403226   
std     34310.446132   34728.825597             7.608079       33768.589550   
min     29999.000000   39900.000000             0.000000         542.000000   
25%     49900.000000   54900.000000             6.000000         740.000000   
50%     75900.000000   79900.000000            10.000000        2101.000000   
75%    117100.000000  120950.000000            14.000000       43470.000000   
max    140900.000000  149900.000000            29.000000       95909.000000   

       Number Of Reviews  Star Rating  
count          62.000000    62.000000  
mean         1861.677419     4.575806  
std          2855.883830     0.059190  
min            42.000000     4.500000  
25%            64.000000     4.500000  
50%           180.000000     4.600000  
75%          3331.000000     4.600000  
max          8161.000000     4.700000  

iPhone Sales Analysis in India🇮🇳 

Now I will create a new dataframe by storing all the data about the top 10 highest-rated iPhones in India on Flipkart. It will help in understanding what kind of iPhones are liked the most in India:

highest_rated = data.sort_values(by=["Star Rating"], 
                                 ascending=False)
highest_rated = highest_rated.head(10)
print(highest_rated['Product Name'])
20     APPLE iPhone 11 Pro Max (Midnight Green, 64 GB)
17         APPLE iPhone 11 Pro Max (Space Grey, 64 GB)
16    APPLE iPhone 11 Pro Max (Midnight Green, 256 GB)
15               APPLE iPhone 11 Pro Max (Gold, 64 GB)
14              APPLE iPhone 11 Pro Max (Gold, 256 GB)
0                    APPLE iPhone 8 Plus (Gold, 64 GB)
29                     APPLE iPhone 12 (White, 128 GB)
32          APPLE iPhone 12 Pro Max (Graphite, 128 GB)
35                     APPLE iPhone 12 (Black, 128 GB)
36                      APPLE iPhone 12 (Blue, 128 GB)
Name: Product Name, dtype: object

According to the above data, below are the top 5 most liked iPhones in India:

  1. APPLE iPhone 11 Pro Max (Midnight Green, 64 GB)
  2. APPLE iPhone 11 Pro Max (Space Grey, 64 GB)
  3. APPLE iPhone 11 Pro Max (Midnight Green, 256 GB) 
  4. APPLE iPhone 11 Pro Max (Gold, 64 GB)
  5. APPLE iPhone 11 Pro Max (Gold, 256 GB)

Now let’s have a look at the number of ratings of the highest-rated iPhones on Flipkart:

iphones = highest_rated["Product Name"].value_counts()
label = iphones.index
counts = highest_rated["Number Of Ratings"]
figure = px.bar(highest_rated, x=label, 
                y = counts, 
            title="Number of Ratings of Highest Rated iPhones")
figure.show()
iPhone sales analysis: Number of Ratings of Highest Rated iPhones

According to the above bar graph, APPLE iPhone 8 Plus (Gold, 64 GB) has the most ratings on Flipkart. Now let’s have a look at the number of reviews of the highest-rated iPhones on Flipkart:

iphones = highest_rated["Product Name"].value_counts()
label = iphones.index
counts = highest_rated["Number Of Reviews"]
figure = px.bar(highest_rated, x=label, 
                y = counts, 
            title="Number of Reviews of Highest Rated iPhones")
figure.show()
Number of Reviews of Highest Rated iPhones

APPLE iPhone 8 Plus (Gold, 64 GB) is also leading in the highest number of reviews on Flipkart among the highest-rated iPhones in India. Now let’s have a look at the relationship between the sale price of iPhones and their ratings on Flipkart:

figure = px.scatter(data_frame = data, x="Number Of Ratings",
                    y="Sale Price", size="Discount Percentage", 
                    trendline="ols", 
                    title="Relationship between Sale Price and Number of Ratings of iPhones")
figure.show()
iPhone sales analysis: Relationship between Sale Price and Number of Ratings of iPhones

There is a negative linear relationship between the sale price of iPhones and the number of ratings. It means iPhones with lower sale prices are sold more in India. Now let’s have a look at the relationship between the discount percentage on iPhones on Flipkart and the number of ratings:

figure = px.scatter(data_frame = data, x="Number Of Ratings",
                    y="Discount Percentage", size="Sale Price", 
                    trendline="ols", 
                    title="Relationship between Discount Percentage and Number of Ratings of iPhones")
figure.show()
Relationship between Discount Percentage and Number of Ratings of iPhones

There is a linear relationship between the discount percentage on iPhones on Flipkart and the number of ratings. It means iPhones with high discounts are sold more in India.

Summary

So this is how you can analyze the sales of iPhones in India using the Python programming language. Some of the takeaways from this article about the sales of iPhone in India are:

  1. APPLE iPhone 8 Plus (Gold, 64 GB) was the most appreciated iPhone in India
  2. iPhones with lower sale prices are sold more in India
  3. iPhones with high discounts are sold more in India

I hope you liked this article on iPhone sales analysis using Python. Feel free to ask valuable questions in the comments section below.

Aman Kharwal
Aman Kharwal

Coder with the ♥️ of a Writer || Data Scientist | Solopreneur | Founder

Articles: 1336

Leave a Reply