top of page

Welcome
to NumpyNinja Blogs

NumpyNinja: Blogs. Demystifying Tech,

One Blog at a Time.
Millions of views. 

Data Normalization Using SQL, Power BI, Python and Excel

Jan 13
4 min read

Imagine you have a messy box of toys. Some toys are repeated, some are broken, and some are all mixed up. You want to organize them so that everything is easy to find and use.

That’s exactly what data normalization does for information.

Data Normalization:

Normalization means:

  • Cleaning data

  • Reducing duplicates

  • Making information consistent

  • Splitting big messy tables into smaller, neat ones.


Think of data normalization like organizing your home.

  • SQL → putting toys in separate labeled boxes

  • Power BI → lining toys up so each row is one toy

  • Python → either organizing the toys or scaling them so they fit nicely on the shelf

  • Excel → cleaning, separating, and aligning toys neatly on shelves


 Normalization in SQL:

SQL stores data in tables. Instead of repeating information, we separate it into related tables.

Example:

Messy table:

Student

Grade

Subject

Teacher

Alice

10

Math

Mr. Smith

Alice

10

English

Mrs. Johnson

Bob

11

Math

Mr. Smith

Step 1: Split into tables

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    Name VARCHAR(50),

    Grade INT

);

 

CREATE TABLE Subjects (

    SubjectID INT PRIMARY KEY,

    SubjectName VARCHAR(50),

    Teacher VARCHAR(50)

);

 

CREATE TABLE Enrollment (

    EnrollmentID INT PRIMARY KEY,

    StudentID INT,

    SubjectID INT,

    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),

    FOREIGN KEY (SubjectID) REFERENCES Subjects(SubjectID)

);

·       Each piece of info is stored once.

·       Easy to update: If Mr. Smith changes, you only change it in one place.

 

2. Normalization in Power BI

Normalization in Power BI means each row should describe just ONE thing.

  • One row = one event, one transaction, or one record

  • No combining multiple values in the same row.

 

Messy table:

Student

Math

English

Alice

95

88

Bob

80

90

Step: Unpivot columns

Student

Subject

Score

Alice

Math

95

Alice

English

88

Bob

Math

80

Bob

English

90

·       Each row is one piece of information

·       Easier to build charts, graphs, and calculations

 

3. Normalization in Python

Python has two main ways to normalize:

a) Organize data (like SQL)

import pandas as pd

 

data = {

    'Student': ['Alice', 'Alice', 'Bob'],

    'Subject': ['Math', 'English', 'Math'],

    'Teacher': ['Mr. Smith', 'Mrs. Johnson', 'Mr. Smith']

}

 

df = pd.DataFrame(data)

 

students = df[['Student']].drop_duplicates()

subjects = df[['Subject', 'Teacher']].drop_duplicates()

·       Reduces duplicates, separates info into clean tables

b) Scale numeric data (Min-Max normalization)

from sklearn.preprocessing import MinMaxScaler

import pandas as pd

 

data = {'Score': [80, 90, 95]}

df = pd.DataFrame(data)

 

scaler = MinMaxScaler()

df['Score_Normalized'] = scaler.fit_transform(df[['Score']])

 

print(df)

Output:

Score

Score_Normalized

80

0.0

90

0.5

95

1.0

·       All numbers are now on the same scale (0 to 1)

·       Useful for graphs, comparisons, and machine learning

4.Normalization in Excel (Most Common Tool!)

Excel normalization is mostly about cleaning and structuring data properly.

Student

Subjects

Scores

Alice

Math, English

95, 88

Bob

Math

80

Problems:

  • Multiple values in one cell

  • Hard to analyze

  • Charts won’t work properly

    Normalized excel table:

Student

Subject

Score

Alice

Math

95

Alice

English

88

Bob

Math

80

 In Excel, normalization is mostly about cleaning and restructuring data so it’s easy to analyze. You start by removing duplicates using Data → Remove Duplicates to ensure the same information isn’t repeated again and again. When multiple values are packed into one cell, you can split columns using Text to Columns so each value gets its own place. For more advanced cleaning, Power Query helps by unpivoting columns, which turns wide, messy tables into clean, row-based data where each row represents just one record. Finally, you can separate data into different tables like Students, Subjects, and Scores, instead of keeping everything in one big sheet. When Excel data is normalized this way, each row tells a single clear story, formulas become simpler and more reliable, and Pivot Tables work faster and give much better insights.

Tool

How Normalization Works

Why It Helps

SQL

Split into tables + keys

No duplicates, easy updates

Power BI

Unpivot & structure rows

Clean visuals, better measures

Python

Split tables or scale numbers

Consistency, ML-ready data

Excel

Clean, unpivot, remove duplicates

Easy analysis & reporting


Data normalization simply means keeping your data tidy, clean, and well organized. When data is organized properly, it avoids repeated information, reduces mistakes, and saves storage space. Clean and structured data also makes analysis, visualization, and reporting much faster and easier. Whether you use SQL, Power BI, Python, or Excel, the idea of normalization stays the same—only the way you apply it changes from tool to tool.

Think of normalization like organizing your toys:

  • One toy per box → SQL (each table has a clear purpose)

  • Line them up neatly → Power BI (one row equals one record for easy visuals)

  • Resize or group them for easy comparison → Python (scaling and structuring data)

  • Clean, sort, and arrange toys on shelves → Excel (remove duplicates, split columns, and use Power Query to keep data tidy)

No matter the tool, the goal is always the same: make data easy to understand, easy to manage, and easy to use.

  • Image Source:Google
    Image Source:Google
 
 

+1 (302) 200-8320

NumPy_Ninja_Logo (1).png

Numpy Ninja Inc. 8 The Grn Ste A Dover, DE 19901

© Copyright 2025 by Numpy Ninja Inc.

  • Twitter
  • LinkedIn
bottom of page