This is my first data analysis portfolio project. The goal was to take a real-world, messy dataset, clean it, and extract basic business insights about sales, products, and customers using Python and Pandas.
- Source: E-Commerce Data on Kaggle
- Description: Contains ~540,000 transactions from a UK-based online retail store (Dec 2010 – Dec 2011).
- Key Columns:
InvoiceNo,StockCode,Description,Quantity,InvoiceDate,UnitPrice,CustomerID,Country.
- Loaded the data and checked for missing values and duplicates.
- Dropped rows with missing
CustomerID(as customer analysis is a key goal). - Converted
InvoiceDateto datetime format and extractedMonthandDayOfWeekfor easier analysis. - Created a new
TotalPricecolumn (Quantity*UnitPrice). - Filtered out canceled orders (negative quantities) to focus on actual sales.
- Time Analysis: Calculated total revenue and number of orders by month and day of the week.
- Product Analysis: Found the top 10 most popular products by quantity sold and by total revenue.
- Customer Analysis: Identified the top 10 customers by total spending and calculated the average order value.
- Geographic Analysis: Checked which countries generate the most revenue.
Created clear and simple charts using Seaborn to visualize:
- Monthly revenue trends.
- Top selling products (bar chart).
- Sales distribution by country.
- Best Month: The highest revenue was generated in November, likely due to holiday shopping.
- Top Product: The most frequently purchased item was POPCORN HOLDER.
- Customer Base: The majority of transactions come from the United Kingdom, which is expected for a UK-based store.
- Average Order: The average customer spends approximately £534 per transaction.
- Python
- Pandas
- Matplotlib & Seaborn
- Jupyter Notebook
- Download e-com.ipynb and data(from repository or Kaggle) OR clone repository
- Install required libraries(check requirements.txt)
- open and run e-com.ipynb notebook