Python Training , study and exam guide
1 Introduction to Python
1.1 What is Python?
1.2 History of Python
1.3 Features of Python
1.4 Python Applications
1.5 Setting up the Python Environment
1.6 Running Your First Python Program
2 Python Basics
2.1 Python Syntax and Indentation
2.2 Variables and Data Types
2.2 1 Numbers
2.2 2 Strings
2.2 3 Lists
2.2 4 Tuples
2.2 5 Sets
2.2 6 Dictionaries
2.3 Operators
2.3 1 Arithmetic Operators
2.3 2 Comparison Operators
2.3 3 Logical Operators
2.3 4 Assignment Operators
2.3 5 Membership Operators
2.3 6 Identity Operators
2.4 Input and Output
2.4 1 Input Function
2.4 2 Output Function
2.5 Comments
2.5 1 Single-line Comments
2.5 2 Multi-line Comments
3 Control Flow
3.1 Conditional Statements
3.1 1 If Statement
3.1 2 If-Else Statement
3.1 3 Elif Statement
3.1 4 Nested If Statements
3.2 Loops
3.2 1 For Loop
3.2 2 While Loop
3.2 3 Nested Loops
3.3 Loop Control Statements
3.3 1 Break Statement
3.3 2 Continue Statement
3.3 3 Pass Statement
4 Functions
4.1 Defining Functions
4.2 Function Arguments
4.2 1 Positional Arguments
4.2 2 Keyword Arguments
4.2 3 Default Arguments
4.2 4 Variable-length Arguments
4.3 Return Statement
4.4 Lambda Functions
4.5 Scope of Variables
4.5 1 Local Variables
4.5 2 Global Variables
4.6 Recursion
5 Data Structures
5.1 Lists
5.1 1 List Operations
5.1 2 List Methods
5.1 3 List Comprehensions
5.2 Tuples
5.2 1 Tuple Operations
5.2 2 Tuple Methods
5.3 Sets
5.3 1 Set Operations
5.3 2 Set Methods
5.4 Dictionaries
5.4 1 Dictionary Operations
5.4 2 Dictionary Methods
5.5 Advanced Data Structures
5.5 1 Stacks
5.5 2 Queues
5.5 3 Linked Lists
6 Modules and Packages
6.1 Importing Modules
6.2 Creating Modules
6.3 Standard Library Modules
6.3 1 Math Module
6.3 2 Random Module
6.3 3 DateTime Module
6.4 Creating Packages
6.5 Installing External Packages
7 File Handling
7.1 Opening and Closing Files
7.2 Reading from Files
7.2 1 read()
7.2 2 readline()
7.2 3 readlines()
7.3 Writing to Files
7.3 1 write()
7.3 2 writelines()
7.4 File Modes
7.5 Working with CSV Files
7.6 Working with JSON Files
8 Exception Handling
8.1 Try and Except Blocks
8.2 Handling Multiple Exceptions
8.3 Finally Block
8.4 Raising Exceptions
8.5 Custom Exceptions
9 Object-Oriented Programming (OOP)
9.1 Classes and Objects
9.2 Attributes and Methods
9.3 Constructors and Destructors
9.4 Inheritance
9.4 1 Single Inheritance
9.4 2 Multiple Inheritance
9.4 3 Multilevel Inheritance
9.5 Polymorphism
9.6 Encapsulation
9.7 Abstraction
10 Working with Libraries
10.1 NumPy
10.1 1 Introduction to NumPy
10.1 2 Creating NumPy Arrays
10.1 3 Array Operations
10.2 Pandas
10.2 1 Introduction to Pandas
10.2 2 DataFrames and Series
10.2 3 Data Manipulation
10.3 Matplotlib
10.3 1 Introduction to Matplotlib
10.3 2 Plotting Graphs
10.3 3 Customizing Plots
10.4 Scikit-learn
10.4 1 Introduction to Scikit-learn
10.4 2 Machine Learning Basics
10.4 3 Model Training and Evaluation
11 Web Development with Python
11.1 Introduction to Web Development
11.2 Flask Framework
11.2 1 Setting Up Flask
11.2 2 Routing
11.2 3 Templates
11.2 4 Forms and Validation
11.3 Django Framework
11.3 1 Setting Up Django
11.3 2 Models and Databases
11.3 3 Views and Templates
11.3 4 Forms and Authentication
12 Final Exam Preparation
12.1 Review of Key Concepts
12.2 Practice Questions
12.3 Mock Exams
12.4 Exam Tips and Strategies
10 2 Pandas Explained

10 2 Pandas Explained

Key Concepts

Pandas is a powerful Python library for data manipulation and analysis. It provides data structures and functions needed to work with structured data efficiently. Key concepts include:

1. DataFrame

A DataFrame is a two-dimensional, size-mutable, and potentially heterogeneous tabular data structure with labeled axes (rows and columns). It is the most commonly used data structure in Pandas.

Example:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
print(df)
    

Analogy: Think of a DataFrame as a spreadsheet where each column can contain different types of data.

2. Series

A Series is a one-dimensional labeled array capable of holding any data type. It is similar to a column in a spreadsheet or a single column in a DataFrame.

Example:

import pandas as pd

data = [10, 20, 30, 40, 50]
series = pd.Series(data)
print(series)
    

Analogy: Think of a Series as a single column in a spreadsheet.

3. Indexing and Selection

Indexing and selection in Pandas allow you to access specific rows and columns of a DataFrame. You can use labels, integer positions, or boolean arrays to select data.

Example:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)

# Selecting a single column
print(df['Name'])

# Selecting multiple columns
print(df[['Name', 'City']])

# Selecting rows by label
print(df.loc[0])

# Selecting rows by integer position
print(df.iloc[1])
    

Analogy: Think of indexing and selection as navigating through a spreadsheet to find specific cells or ranges of cells.

4. Data Cleaning

Data cleaning involves handling missing data, removing duplicates, and correcting inconsistencies in the dataset. Pandas provides various functions to clean and preprocess data.

Example:

import pandas as pd
import numpy as np

data = {
    'Name': ['Alice', 'Bob', np.nan, 'Charlie'],
    'Age': [25, 30, np.nan, 35],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Chicago']
}

df = pd.DataFrame(data)

# Dropping missing values
df_cleaned = df.dropna()
print(df_cleaned)

# Filling missing values
df_filled = df.fillna(0)
print(df_filled)

# Removing duplicates
df_unique = df.drop_duplicates()
print(df_unique)
    

Analogy: Think of data cleaning as tidying up a messy room by removing unnecessary items and organizing the rest.

5. Grouping and Aggregation

Grouping and aggregation allow you to group data based on one or more columns and apply aggregate functions like sum, mean, count, etc.

Example:

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
    'Age': [25, 30, 35, 25, 30],
    'Salary': [50000, 60000, 70000, 55000, 65000]
}

df = pd.DataFrame(data)

# Grouping by Name and calculating mean salary
grouped = df.groupby('Name').mean()
print(grouped)
    

Analogy: Think of grouping and aggregation as organizing items in a store by category and calculating the total sales for each category.

6. Merging and Joining

Merging and joining allow you to combine multiple DataFrames based on common columns or indices. This is useful when working with relational data.

Example:

import pandas as pd

data1 = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}

data2 = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Salary': [50000, 60000, 70000]
}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Merging DataFrames on 'Name'
merged = pd.merge(df1, df2, on='Name')
print(merged)
    

Analogy: Think of merging and joining as combining two spreadsheets based on a common column, like merging customer information from two different sources.