1. Introduction to Excel Automation with Python

1.1 Why Excel Automation?

If you’ve ever worked in an office environment, you’ve probably encountered Excel. It’s a powerful tool that helps businesses handle and analyze large amounts of data. However, as the volume of data increases, so does the complexity and repetitiveness of the tasks associated with managing it. This is where Excel automation comes into play.

Excel automation refers to the process of automating repetitive tasks that are typically done manually in Excel. These tasks might include generating reports, cleaning and organizing data, performing complex calculations, and more. Automation can significantly reduce the time and effort spent on such tasks, boost productivity, and minimize human errors.

1.2 Why Python for Excel Automation?

Python is a high-level, general-purpose programming language that is simple to learn, yet powerful and versatile. It’s favored by beginners and experts alike for its readability and simplicity.

There are several reasons why Python is a great choice for Excel automation:

  1. Simplicity and Readability: Python’s syntax is simple and intuitive. It is designed to be easy to read and write, which makes it an excellent choice for beginners.
  2. Powerful Libraries: Python has a vast ecosystem of libraries, like openpyxl and pandas, that are specifically designed to read, write, and manipulate Excel files. These libraries simplify many complex tasks related to Excel automation.
  3. Cross-Platform Compatibility: Python works on different platforms such as Windows, Mac, Linux, etc., making Python scripts easily portable across different systems.
  4. Versatility: Beyond Excel automation, Python is also capable of handling a broad range of other tasks, such as web scraping, data analysis, machine learning, and more.

1.3 How to Set Up Python Environment for Excel Automation?

Setting up your Python environment for Excel automation is a straightforward process. Here are the steps to get you started:

1.3.1 Installing Python

  1. Visit the official Python website at
  2. Navigate to the “Downloads” section and download the latest version of Python suitable for your operating system (Windows, MacOS, or Linux).
  3. Run the downloaded installer and follow the instructions to install Python on your computer. Make sure to check the box that says “Add Python to PATH” during installation.

1.3.2 Installing Required Python Libraries

Once Python is installed, you can install the necessary Python libraries for Excel automation.

  1. Open your computer’s command prompt (Windows) or terminal (Mac/Linux).
  2. To install the openpyxl library, type pip install openpyxl and press Enter.
  3. To install the pandas library, type pip install pandas and press Enter.

Now, you are ready to start automating your Excel tasks with Python!

In the next chapter, we will dive into Python and Excel basics to build a strong foundation for future sections.

2. Python and Excel Basics

2.1 Introduction to Python

Python is a high-level, interpreted programming language known for its simplicity and readability. Despite being straightforward for beginners to learn, Python is incredibly powerful, enabling all sorts of applications, from simple scripts to complex machine-learning models. We will start by going over some of the basics.

2.1.1 Data Types

In Python, data types define the classification or category of data that a value belongs to. This includes types such as: Strings

Strings are sequences of character data. In Python, you define a string by enclosing the text in quotation marks. Here’s an example:

greeting = "Hello, World!"

This script will output the text Hello, World!. Numbers

Python supports different types of numbers, including integers and floating-point numbers. Here’s how you can use them:

x = 10     # integer
y = 3.14   # float
print(x, y)

This script will output 10 and 3.14. Booleans

Booleans represent one of two values: True or False. They’re used for comparisons and conditionals, as we’ll see shortly.

is_active = True

This script will output True.

2.1.2 Variables

A variable is like a container where we can store different types of data. You can name a variable anything you like, but it’s best to make it something descriptive of the data it holds. Here’s an example:

greeting = "Hello, World!"

2.1.3 Control Structures

Control structures are blocks of code that determine how other sections of code are executed based on specified conditions. If Statements

The if statement allows for conditional execution of code.

#age is  a varibale here.
age = 18

#If condition used, if we make age as 17, it will not print this statement
if age >= 18:
    print("You are an adult!") Loops

Loops are used for repeating a block of code multiple times.

#This will execute the print statement for the range we have defined, you can make it 10 to print 10 times, etc.
for i in range(5):
    print("Hello, World!")

2.2 Introduction to Excel

Microsoft Excel is a popular spreadsheet software that you likely already know. It allows you to manage and analyze data efficiently, thanks to various functions and features like cells, rows, columns, and sheets.

2.2.1 Cells, Rows, and Columns

In Excel, a cell is the intersection of a column and a row, and it’s where you enter data. Columns are identified by letters (A, B, C, etc.), while rows are identified by numbers (1, 2, 3, etc.). So if you see something like ‘B2’, that’s referring to the cell in the second column and the second row.

2.2.2 Sheets

A single Excel file, also known as a workbook, can contain multiple worksheets. This is useful for organizing related data across different tabs.

2.3 Python for Excel

Python, with the help of specific libraries, can interact with Excel and do everything that you can do manually in Excel. The two most commonly used libraries for this are openpyxl and pandas.

2.3.1 The openpyxl Library

openpyxl is a Python library for reading and writing Excel files, without any need for Excel software. It supports .xlsx file format of Excel 2010 and later. Here’s a simple example of how to use it:

2.3.2 The pandas Library

pandas is a powerful data analysis library that also has strong Excel support. It’s more high-level than openpyxl, and great for tasks like reading an Excel file into a data frame (a sort of table), or summarizing data. Here’s an example of reading an Excel file:

Now that you have a basic understanding of Python, Excel, and how Python can interact with Excel, let’s move forward to reading and writing data.

3. Reading and Writing Data

In this chapter, we will focus on how Python can interact with Excel files. We will look at how to read data from an Excel file and how to write data to an Excel file. But before we start, let’s answer a basic question: why do we even need to read and write data in Excel?

3.1 Why Read and Write Data in Excel?

Excel is a powerful tool used by many professionals to store and analyze data. Sometimes, the data in an Excel file needs to be used in a Python program for further analysis or processing. On the other hand, Python can also be used to generate data that needs to be stored in an Excel file for future reference or analysis.

With Python, we can automate the process of reading from and writing to Excel files, which can save a lot of time and effort, especially when dealing with large files or repetitive tasks.

3.2 Opening and Reading Excel Files in Python

Before we can read an Excel file using Python, we need to open the file first. To do this, we can use the pandas library, which provides a function called read_excel(). This function reads an Excel file and returns a DataFrame, which is a two-dimensional data structure that can store data in rows and columns, much like an Excel spreadsheet.

Here’s an example of how to use the read_excel() function:

import pandas as pd

# open an Excel file and read the data
df = pd.read_excel('ds_salaries.xlsx')

# print the data

The above code reads an Excel file named ‘example.xlsx’ and prints the data. If the file is not in the same directory as your Python script, you will need to provide the full path to the file.

3.3 Writing Data to Excel Files

Python can not only read data from Excel files but also write data to Excel files. This can be useful when you need to store the results of your Python code for future reference or share it with others who prefer to work with Excel.

The pandas the library provides a function called to_excel() for this purpose. This function writes a DataFrame to an Excel file. Here’s an example:

Notice Title

Due to certain limitations with Trinket IDE, the output.xlsx file will get saved, but you will not be able to view it. If you replicate the same code on your computer, you should see the output file in the same directory as your Python file.

The above code creates a DataFrame with some data and writes it to an Excel file named ‘output.xlsx’. The index=False the parameter is used to prevent pandas from writing row indices to the Excel file.

3.4 Working with Different Data Types

When you are reading and writing data in Excel, it’s important to be aware of the data types. Excel has several data types such as text, number, date, and boolean, and Python has corresponding data types.

When you read an Excel file using pandas, it tries to infer the data types based on the content of the cells. For example, if a cell contains only digits, pandas will treat it as a number. If a cell contains a date, pandas will treat it as a date.

When writing data to an Excel file, pandas will write the data in a format that Excel can understand. For example, if you have a date in your DataFrame, pandas will write it as a date in the Excel file. Basically, pandas have got your back here.

3.5 Practice: Reading and Writing Data with Python

Now that we have learned how to read and write data in Excel using Python, it’s time for some practice. In the embedded Trinket IDE below, try to open an Excel file, read the data, modify it, and write it back to a new Excel file. Don’t forget to explore different data types and see how pandas handles them.

In the next chapter, we will learn how to manipulate Excel data with Python, including accessing and modifying cells, rows, and columns. So stay tuned!

4. Manipulating Excel Data with Python

In this chapter, we will cover how to manipulate Excel data using Python. This will involve accessing and modifying cells, rows, and columns, using cell ranges, and handling Excel formulas in Python.

We will be using the Data Science Salaries Excel file for practically learning the concept, here is what our Excel file looks like:

4.1 Accessing and Modifying Cells

4.1.1 Accessing Cells

To interact with the data in an Excel spreadsheet, we first need to understand how to access specific cells. We can access a cell by calling the cell() method with the row and column indices. Here’s an example:

4.1.2 Modifying Cells

Modifying cells in an Excel file is straightforward. We access the cell as before, but this time, we assign a new value to it:

4.2 Working with Rows and Columns

4.2.1 Accessing Rows and Columns

We can also access entire rows and columns using slicing. Here’s how we can do it:

1. Load the excel file ds_salaries.xlsx 
2. Read sheet called '2020' in variable sheet 
(You can read any sheet using their name [using pandas or openpyxl)
3. Assign values of Column B to variable col (You can chose any other column eg. A, B, C, etc)
4. Assign values of Row 1 to variable row (You can chose any other row)
5. Print these variables to view the results.

4.2.2 Modifying Rows and Columns

Modifying rows and columns is very similar to modifying a single cell. Here’s how you can do it:

4.3 Using Cell Ranges

Sometimes, we want to work with a specific range of cells. We can use the slicing syntax to do this:

4.4 Handling Excel Formulas in Python

Python allows us to use Excel formulas as well. Here’s an example of using a SUM formula:

We hope this chapter helped you understand how you can manipulate Excel data using Python. In the following chapters, we’ll cover more advanced topics and real-world use cases to make you even more comfortable with Excel automation.

5: Working with Multiple Worksheets

Excel files often consist of multiple worksheets, each containing different sets of data. By learning how to work with multiple worksheets using Python, you can significantly improve your efficiency and productivity. This chapter will introduce you to how you can use Python to add, remove, navigate, copy, and move worksheets in an Excel file.

We will be using the Data Science Salaries Excel file for practically learning the concept, here is what our Excel file looks like:

5.1 Adding and Removing Worksheets

5.1.1 Adding Worksheets

With Python, adding worksheets to your Excel file is a piece of cake. Here’s a simple way to do it:

In the code above, we first import the openpyxl library and then load the Excel file. We add a new worksheet named “NewSheet” using the create_sheet() method. Finally, we save the workbook.

5.1.2 Removing Worksheets

Just as you can add worksheets, you can also remove them. Here’s how:

5.2 Navigating between Worksheets

You can easily navigate between different worksheets in an Excel file using Python. Here’s an example:

In this code, we first load the workbook, then print a list of all worksheet names. We select a worksheet by its name and print its title.

5.3 Copying and Moving Worksheets

5.3.1 Copying Worksheets

To copy a worksheet, you can use the copy_worksheet() method. Let’s try to copy a worksheet:

In this code, we first load the workbook and select the worksheet to be copied. We then create a copy of the worksheet using the copy_worksheet() method and save the workbook.

5.3.2 Moving Worksheets

To move a worksheet, you can use the sheets property to reorder the worksheets:

In this code, we first load the workbook and print the current order of worksheets. We then reorder the worksheets based on their title and save the workbook.

Remember, Python makes working with multiple worksheets very simple and efficient. With practice, you’ll be able to manipulate multiple worksheets with ease.

Chapter 6: Data Analysis and Visualization with Python

Data Analysis and Visualization are essential skills for those wanting to derive insights from data. In this chapter, we’ll cover how to use Python’s powerful libraries to aggregate, summarize, and visualize your Excel data.

We will be using the Data Science Salaries Excel file for practically learning the concept, here is what our Excel file looks like:

6.1 Aggregating and Summarizing Data

The first step to understanding your data is to aggregate and summarize it. This involves techniques like finding the sum, mean, median, and mode of your data.

6.1.1 Summarizing Data with Pandas

Pandas is a library that offers a variety of methods to summarize your data. Here are a few examples:

6.1.2 Aggregating Data with GroupBy

Pandas’ GroupBy function is a powerful tool that allows you to group your data based on the values in certain columns.

6.2 Sorting and Filtering Data

Sorting and filtering are other common tasks that can help you understand and focus on specific parts of your data.

6.2.1 Sorting Data

You can sort your data with the sort_values() method. We will again take the last aggregation we did, Median Salary for Data Science jobs and sort them in descending order to see who earns the most and who earns the least.

6.2.2 Filtering Data

You can filter your data based on conditions using Boolean indexing. Let’s try to find those jobs with Median Salary Higher than 200K using filtering data.

6.3 Creating Charts and Graphs with Matplotlib

Visualizations help you understand patterns and trends in your data. We’ll use Matplotlib, a popular visualization library in Python.

6.3.1 Creating a Line Graph

Creating a line graph requires at least 2 columns with continuous numerical values, since our dataset does not have that, we will group the data by work year and calculate the average salary for each year, then we will finally plot a line chart.

6.3.2 Creating a Bar Chart

We created a dataframe in the Filtering Data section for Job titles having a median salary higher than 200k, now we will create a bar chart to add this to our report.

6.3.3 Creating a Histogram

We will create a Histogram for salaries in our Data Science salaries data with 20 bins.

You’ll notice that this chapter has a number of code examples. These are just the basics, and you can do much more with Python’s data analysis and visualization tools. As you proceed with the course, you’ll be able to apply these tools to automate various Excel tasks, making your work more efficient.

Make sure to take advantage of the embedded Trinket IDE to try out these examples and exercises for yourself! Happy learning!

Chapter 7: Excel Tasks Automation

The strength of Excel lies in its wide-ranging functionalities, but there’s a catch – many tasks can become repetitive and time-consuming, especially if you’re dealing with large datasets. Here, Python, with its simplicity and powerful libraries, can step in to automate those tasks, saving you precious time and effort. This chapter will guide you through automating common Excel tasks using Python.

We will be using the Data Science Salaries Excel file for practically learning the concept, here is what our Excel file looks like:

7.1 Automating Data Entry

Excel is widely used for data entry tasks. However, entering large amounts of data manually can be time-consuming and prone to errors. Let’s learn how to automate this process using Python.

7.1.1 Reading Data from a File

Python can read data from various file types (such as .txt, .csv, .json, etc.) and write it into an Excel file. Here’s a simple example using a .csvand Excel file:

In this example, we use the pandas library to read data from a .csv and Excel file and write it into a new Excel file. index=False means that the index (row numbers) will not be written into the Excel file.

7.1.2 Writing Data to Excel File

You can also write data directly to an Excel file from Python. Here’s an example:

Here, we first create a DataFrame (a 2-dimensional labeled data structure with columns of potentially different types, very similar to an Excel sheet). We then write it into an Excel file using to_excel.

7.2 Automating Report Generation

Generating reports with updated data is another common Excel task. Python can easily handle this.

7.2.1 Load New Data

We begin by loading the new data. Let’s use a new .csv file for this:

# Load the data from the csv file
new_data = pd.read_excel('ds_salaries.xlsx')

7.2.2 Merge with Existing Data

In order to show how Merge works, we will read 2 different sheets from our Data Science salaries Excel file in two different variables and we will contact them in one single variable. Basically, we will merge data from two different sheets in an Excel file into one sheet, the same can be done for two or more different files.

The pd.concat function concatenates the data along a particular axis (by default, the row axis).

7.2.3 Create Summary Report

Let’s say the report requires a summary of year-wise and experience-wise median salary reports, here is how we can automate this process.

Here, groupby groups the data by the Work Year and Experience Level column, and median calculates the median salary.

7.3 Automating Data Cleaning

Data cleaning is a crucial step in data analysis. Python’s pandas the library provides numerous functionalities to automate data-cleaning tasks.

7.3.1 Handling Missing Values

Missing values are common in datasets. Python provides several methods to handle them, such as deleting rows with missing values or filling them with specific values. In our DS Salaries dataset, in a sheet named Combined, at the bottom we have 7 rows where salary is missing, we can either delete it or fill it with a specific value, in our case we will fill the missing values with mean salary of that specific job title across the whole dataset, in your specific case, you can use your logic that best suits your need.

# Load the data
data = pd.read_excel('dirty_data.xlsx')

# Remove rows with missing values
data_cleaned = data.dropna()

# Alternatively, fill missing values with a specific value (e.g., 0)
data_filled = data.fillna(0)

7.3.2 Removing Duplicates

Duplicate rows can distort your analysis. Python can find and remove them:

# Remove duplicate rows
data_deduplicated = data.drop_duplicates()

7.4 Automating Data Analysis and Visualization

Python provides powerful tools for data analysis and visualization, such as pandas for analysis and matplotlib for visualization. These tools can create charts and graphs for better data understanding.

7.4.1 Data Analysis

There’s a multitude of tasks one can undertake when performing Data Analysis. For the purpose of demonstration, I will utilize a dataset containing salaries of various Data Science positions to answer the following questions:

  1. What is the highest salary present in our dataset and which job title does it correspond to?
  2. What is the difference in the average salary between Full-Time (FT) and Part-Time (PT) employees?
  3. What is the company-wise mean salary?

7.4.2 Data Visualization

We can also visualize our data. For instance, let’s create a bar chart of average salary by employment type.

In this chapter, we learned how Python can automate various Excel tasks, like data entry, report generation, data cleaning, and data analysis. Practice these examples to strengthen your understanding and make your daily tasks more efficient.

In the next chapter, we’ll explore some advanced Excel automation tasks. Keep practicing and happy learning!

Chapter 8: Advanced Excel Automation

In this chapter, we will tackle more complex tasks that can be automated in Excel using Python. We’ll cover working with PivotTables, automating conditional formatting, creating dynamic dashboards, and handling large Excel files. We’ll be using an Excel file named ds_salaries.xlsx throughout this chapter for our examples.

8.1 Working with Pivot Tables in Python

Pivot Tables are one of the most powerful features of Excel, allowing you to quickly summarize complex data sets. With Python’s pandas library, you can create and manipulate Pivot Tables just like you would in Excel.

8.1.1 Loading the Dataset

First, let’s load the ds_salaries.xlsx file into a pandas DataFrame:

import pandas as pd

# Load the Excel file
df = pd.read_excel('ds_salaries.xlsx')

# Display the first few rows

8.1.2 Creating a Pivot Table

Now, let’s say we want to create a Pivot Table to summarize the average salary in USD by job_title and experience_level:

pivot_table = df.pivot_table(values='salary_in_usd', index='job_title', columns='experience_level', aggfunc='mean')

# Display the Pivot Table

8.1.3 Manipulating a Pivot Table

We can further manipulate this Pivot Table, such as sorting the values or filling any missing values with zero:

# Sort by 'Entry-Level' salaries in descending order
pivot_table_sorted = pivot_table.sort_values('EN', ascending=False)

# Fill missing values with 0
pivot_table_filled = pivot_table_sorted.fillna(0)

# Display the manipulated Pivot Table
print("\nSorted Pivot Table:")

This is an example of how you can automate the creation and manipulation of Pivot Tables in Python.

8.2 Automating Conditional Formatting

Conditional formatting is another feature in Excel that you can automate using Python. It allows you to format your cells based on certain conditions.

The openpyxl library provides ways to apply Excel-like conditional formatting rules. Let’s load our ds_salaries.xlsx file into an openpyxl Workbook and apply some conditional formatting rules:


In section 8.2, the task of applying conditional formatting cannot be viewed directly within the Trinket IDE. The formatting changes are made to the Excel file which is saved to the local environment. Unfortunately, these changes can’t be seen until the modified Excel file is opened in an Excel viewer or application. We request you to please run these codes on your computer and save the file, you will be able to view all the changes made in the updated Excel file.

8.2.1 Loading the Dataset

First, let’s load the ds_salaries.xlsx file into an openpyxl Workbook:

from openpyxl import load_workbook

# Load the Excel file
wb = load_workbook('ds_salaries.xlsx')

# Select the active worksheet
ws =

8.2.2 Applying Conditional Formatting

Now, let’s say we want to highlight all cells in the ‘salary_in_usd’ column that is above 100,000 USD:

from openpyxl.styles import PatternFill
from openpyxl.styles.differential import DifferentialStyle
from openpyxl.formatting.rule import Rule

# Define a yellow fill
yellow_fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')

# Define a differential style with the yellow fill
dxf = DifferentialStyle(fill=yellow_fill)

# Define a rule to apply the differential style to cells with a value greater than 100,000
rule = Rule(type='expression', dxf=dxf, formula=['$H1>100000'])

# Add the rule to the worksheet's conditional formatting rules
ws.conditional_formatting.add('H:H', rule)

# Save the workbook'ds_salaries_conditional_formatting.xlsx')

In this example, the rule will apply a yellow fill to any cell in the ‘salary_in_usd’ column that has a value greater than 100,000. This is just a taste of the power of automating conditional formatting with Python.

8.3 Creating Dynamic Excel Dashboards with Python


In section 8.3, when creating an Excel dashboard, the final result is intended to be a visually interactive Excel file. This result cannot be properly represented in the Trinket IDE. We request you to please run these codes on your computer and save the file, you will be able to view all the changes made in the updated Excel file.

Python allows you to automate the creation of dynamic dashboards in Excel. This section will give a brief overview, as creating dashboards is a more advanced topic that goes beyond Python automation and into Excel’s visual capabilities.

8.3.1 Loading the Dataset

Let’s load our ds_salaries.xlsx file into a pandas DataFrame:

# Load the Excel file
df = pd.read_excel('ds_salaries.xlsx')

8.3.2 Creating a Basic Dashboard

With pandas, you can quickly aggregate your data to provide the numbers you want to display on your dashboard. For example, let’s calculate the average salary by experience_level:

average_salaries = df.groupby('experience_level')['salary_in_usd'].mean()

You can then write these numbers to an Excel file, perhaps along with charts created using matplotlib or pandas‘ built-in plotting capabilities.

You can also use the openpyxl or xlsxwriter libraries to create more complex dashboards with interactive controls, but this requires a more in-depth understanding of both Python and Excel.

8.4 Handling Large Excel Files

Python excels at handling large datasets, including Excel files. If you’re dealing with a very large Excel file that is too big to open in Excel itself, Python can still handle it. This can be a lifesaver when you need to process, clean, or analyze very large datasets.

8.4.1 Loading Large Datasets

When dealing with large datasets, you might not be able to load the whole dataset into memory. In such cases, you can load and process the data in chunks:


When we use the chunksize parameter with pd.read_excel(), pandas reads in only a chunk of the data at a time. For example, if we set chunksize=500, pandas only read in 500 rows at a time, process them, and then discard them from memory to free up space for the next chunk. 500 just for the example as our data is not huge, in the real world we can set a chunk size of 50,000 or something greater.
chunk_size = 500  # Adjust this number based on your system's memory

# Load the Excel file in chunks
chunked_df = pd.read_excel('large_ds_salaries.xlsx', chunksize=chunk_size)

# Process each chunk
for chunk in chunked_df:
    # Perform your data processing here

In this example, we’re loading the data in chunks of 500 rows at a time. This allows us to process large datasets that would otherwise not fit into memory.

Python’s ability to handle large Excel files opens up new possibilities for automating complex data processing tasks.

In conclusion, automating advanced Excel tasks using Python is not only possible but also practical and efficient. As you’ve seen, Python provides powerful tools for working with PivotTables, applying conditional formatting, creating dynamic dashboards, and handling large Excel files. By automating these tasks, you can save significant time and reduce the risk of manual errors.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

9.1: Sales Report Generation (Case Study)


Sales Report Generation is a task that sales analysts perform regularly, usually on a daily, weekly, or monthly basis. It involves pulling data from various sources, cleaning it, processing it, and generating insightful reports that can help to make informed business decisions. In this case study, we’ll use Python to automate this process. The data we will be using in our case study can be found here. Here is what our dataset looks like:

Setting Up the Data

Let’s begin by importing the necessary libraries and loading the data from our Excel file. Remember that you’ve already covered data importing in a previous chapter, so we’ll breeze through this part:

Import the necessary libraries
import pandas as pd
import matplotlib.pyplot as plt

# Load the data
data = pd.read_excel('sales_data.xlsx')

Now, let’s look at a quick overview of our data:


Understanding the Sales Data

Our data contains various columns which include ‘Invoice ID’, ‘Branch’, ‘City’, ‘Customer type’, ‘Gender’, ‘Product line’, ‘Unit price’, ‘Quantity’, ‘Tax 5%’, ‘Total’, ‘Date’, ‘Time’, ‘Payment’, ‘cogs’, ‘gross margin percentage’, ‘gross income’, ‘Rating’. Each row in the dataset represents an individual sale.

Descriptive Statistics

Let’s start by getting a basic understanding of the data. We’ll look at the descriptive statistics of numerical columns.


This will give us the count, mean, standard deviation, min, 25%, 50%, 75%, and max values of the numerical columns.

Distribution of Sales by Gender

One of the most basic tasks when analyzing sales data is to break it down into categories. Let’s start by looking at the distribution of sales by gender.

gender_counts = data['Gender'].value_counts()
plt.title('Sales by Gender')

Sales by Product Line

Next, let’s analyze the sales data by product line.

product_line_counts = data['Product line'].value_counts()
plt.title('Sales by Product Line')

Here is the Code:

Automating the Sales Report

Monthly Sales Report

Creating a daily sales report is a critical task often performed by a sales analyst. This process involves compiling sales data on a day-to-day basis and comparing it to preceding periods for analysis. Notably, this can be extended to a weekly or monthly basis for broader insights. In our demonstration, we’ve constructed a daily sales report for the month of February alongside a comprehensive monthly sales report. Both these reports have been visually represented through plots, making the data easy to digest and understand.

# Convert 'Date' to datetime
data['Date'] = pd.to_datetime(data['Date'])

# Set 'Date' as the index
data.set_index('Date', inplace=True)

# Calculate monthly sales
monthly_sales = data.resample('M').sum()['Total']

# Filter for a specific month (for example: February)
february_data = data[data.index.month == 2]

# Calculate daily sales for February
daily_sales_february = february_data.resample('D').sum()['Total']

# Create a figure with 2 subplots: one for monthly sales, one for daily sales in February
fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(10,8))

# Plot monthly sales
monthly_sales.plot(kind='line', ax=axes[0])
axes[0].set_title('Monthly Sales')

# Plot daily sales for February
daily_sales_february.plot(kind='line', ax=axes[1])
axes[1].set_title('Daily Sales for February')

# Adjust layout for better visualization

Customer Type Analysis

Analyzing sales by customer type can give insights into customer behavior which can inform marketing strategies.

customer_type_counts = data['Customer type'].value_counts()
plt.title('Sales by Customer Type')

City-wise Sales Analysis

Comparing sales across different cities can provide insights into regional performance and trends.

city_sales = data.groupby('City').sum()['Total']

# Plot city-wise sales
plt.title('City-wise Sales')


In this case study, we’ve used Python to automate the process of sales report generation. We have covered how to aggregate data, how to create various bar and line plots, and how to analyze data based on different categories.

It’s important to note that the possibilities with Python and Excel automation are vast. You can automate more complex tasks depending on the requirements of your organization or the specific nature of your data. As you delve deeper into Excel automation with Python, you’ll discover more powerful ways to automate your tasks and generate more detailed and insightful reports.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

© Let’s Data Science


Unlock AI & Data Science treasures. Log in!