Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Python for Data Science Automation (Course 1)
Welcome to Python for Data Science Automation
🚀Python for Data Science Automation: Let's Do This! (2:18)
Course Prerequisites
Software Preview: Python, VSCode, & Conda Information
🌐 Private BSU Slack Community: How to Join
🏆 Course Certificate: How to Get It
Emoji Guide ⚠️💪😃
[Optional] Video Subtitles (Captions)
Would You Like To Become An Affiliate (And Earn 20% On Your Sales)?
Python Packages Used In This Course
Full Python Package List And Versions For the Course
Getting Help (Important!)
⚠️ [IMPORTANT] How to Get Help
Part 1 - Foundations of Data Analysis with Python
The Game Plan: Data Analysis Foundations (0:45)
Module 0: Business Project & Course Setup
📈 The Business Case: Building an Automated Forecast System (0:43)
0.1 Course Project Download
🔽 Course Project Zip [File Download] (0:44)
0.2 Key Resources
🗺️ Course Workflow: Tying Specific Actions to the Business Process (2:26)
📑 Ultimate Python Cheat Sheet: Python Ecosystem in 2 Pages (4:02)
🔽 The Transactional Database Model [PDF Download] (3:34)
0.3 Software Downloads
Anaconda Installation (2:36)
IDE (Integrated Development Environment) Options (2:18)
VSCode Installation (1:37)
0.4 CONDA ENVIRONMENT SETUP (USING VSCODE)
2 Options For Recreating The Python Environments Used In The Course
[IMPORTANT] A quick word on Python Environments...
All Windows Users DO THIS!!!
Connect VSCode to Your Course Project Files (1:12)
04A: CONDA PRODUCTION ENVIRONMENT (ds4b_101p) (Strict versioning, can be tougher to install)
Conda Env Create: Make the Python Course Environment (4:40)
Conda Env Update: Add Python Packages to Your Environment (1:43)
Conda Env Export: Review & Share Your Environment (1:11)
Conda Env List & Remove: List Available Environments & Remove Unnecessary Envs (1:21)
04B: BEGINNER-FRIENDLY CONDA DEV ENVIRONMENT (ds4b_101p_dev) (Will Get You Moving Forward FASTER)
🔽 New Easier Python Environment Installation: ds4b_101p_dev (11:13)
0.4 Connecting VSCode Projects To Your Conda Environment
Python Interpreter Selection (Requires VSCode Python Extension) (1:08)
0.4 Environment Trouble Shooting Guidance
🆘 Mac: Troubleshooting Environment Guidance
🆘 Windows PowerShell: All Windows Users DO THIS!!!
🆘 Windows Users: Troubleshooting Guidance
0.5 VSCode Setup (for Data Science)
Getting to Know VSCode (1:14)
VSCode Theme Customization (2:06)
VSCode Icon Themes (0:43)
VSCode User & Workspace Settings (4:15)
VSCode Keyboard Shortcuts (1:16)
VSCode Python Extensions (3:22)
VSCode Jupyter Extension - Jupyter Notebook Support (2:04)
VSCode Jupyter Extension - Interactive Python (3:34)
[Optional VSCode Setting] Jupyter: Send Selection to Interactive Window (2:30)
VSCode Excel Viewer (1:00)
VSCode Markdown & PDF Extensions (2:42)
VSCode Path Intellisense (1:08)
VSCode SQLite Extension (0:40)
[Optional] VSCode Extensions for R Users (1:26)
0.6 Recap & Code Checkpoint
🔽 Python Environment Checkpoint [File Download] (3:52)
Module 1: Jumpstart - Sales Analysis (Time Series)
🔽 Getting Started [File Download] (4:07)
Using the Cheat Sheet (1:25)
1.1 Importing from Python Packages
Import: pandas, numpy, matplotlib.pyplot (3:33)
Importing From: plotnine, miziani (4:41)
Importing Functions and Submodules: os, rich (2:08)
Setting Up Python Interactive (2:44)
⚙️ [Reminder | Optional VSCode Setting] Jupyter: Send Selection to Interactive Window (2:30)
1.2 Data Import
Getting Help Documentation (2:46)
⚠️⚙️IMPORTANT VSCODE SETTING: File Paths | jupyter.notebookFileRoot (6:34)
Reading the Excel Files (6:45)
🔗 Checkpoint Link
1.3 Examining the Data
Reviewing the Data Model (5:09)
Exploratory 1: Top 5 Most Frequent Descriptions (3:54)
Exploratory 2: Plotting the Top 5 Bike Descriptions (6:22)
🔗 Checkpoint Link
1.4 Joining the Excel Tables
Preparing Orderlines for Merge: Drop Column (3:04)
Merging the Bikes DataFrame (3:33)
Merging the Bikeshops Data Frame (3:26)
🔗 Checkpoint Link
1.5 Data Wrangling (Transformation)
Datetime: Converting Order Date | Copy vs No Copy (4:51)
Splitting the Description: Category 1, Category 2, and Frame Material (7:26)
Splitting Location: City, State (3:03)
Create the Total Price Column (2:53)
Reorganizing the Columns (4:43)
Renaming Columns (4:05)
Reviewing the Data Transformations (1:11)
🔗 Checkpoint Link
1.6 Time Series Plotting
Save Your Work: Pickle it. (3:49)
🔗 Pandas Datetime Accessors (2:43)
1.6.1 Sales Analysis, Part 1 - Sales By Month
🔗Resampling: Working with Pandas Offsets (7:25)
Quick Plot: Plotting Single Time Series w/ Pandas Matplotlib Backend (1:40)
Plotnine Visualization: Sales By Month, Part 1 - Geometries (5:52)
Plotnine Visualization: Sales by Month, Part 2 - Scales & Themes (5:50)
🔗 Checkpoint Link
1.6.2 Sales Analysis, Part 2 - Sales by Week & Category 2
Resampling Groups: Combine groupby() and resample() (9:22)
Quick Plot: Plotting Multiple Time Series w/ Pandas Matplotlib Backend (7:23)
Plotnine Visualization, Part 1: Facetted Sales By Date & Category2 (Group) (8:57)
Plotnine Visualization, Part 2: Adding Themes & Scales (8:52)
🔗 Checkpoint Link
1.7 Save & Recap
Writing Files: Pickle, CSV, Excel (4:41)
🎉 Congrats. That was a fun whirlwind. Let's recap. (2:34)
1.8 Checkpoint: Module 1 - Jumpstart
🔽 Code Checkpoint Zip - Module 1 [File Download]
Module 2: SQL Databases & Python Packages
🔽 Getting Started [File Download] (1:21)
2.1 Importing Files
Pickle Files 🥒 (3:40)
CSV Files 💾 (3:58)
Excel Files 👔 (3:25)
🔗 Checkpoint Link
2.2 SQL Alchemy Databases
SQL Databases 🗂️ (1:46)
Pandas I/O & SQL Alchemy Overviews (3:01)
Make Database Directory (1:23)
🔗 Checkpoint Link
2.2.1 Creating a Database
Create the SQLite Database (4:19)
Read the Excel Files (3:03)
Create the Database Tables (7:11)
Close the Connection (0:53)
🔗 Checkpoint Link
2.2.2 Reconnecting to the Database
Connect to the Database (2:07)
Getting the Database Table Names (2:34)
Reading from the Tables with f-strings (1:47)
⚙️ [Bonus] VSCode SQLite Extension (3:04)
🔗 Checkpoint Link
2.3 Creating a Function: collect_data()
Making collect_data(), Part 1: Function Setup (6:39)
Making collect_data(), Part 2: Read Tables from the Database (8:38)
Making collect_data(), Part 3: Test the Database Import (1:14)
Making collect_data(), Part 4: Joining the Data (8:25)
Making collect_data(), Part 5: Cleaning the Data 1 (7:14)
Making collect_data(), Part 6: Cleaning the Data 2 (6:48)
⚙️ Making collect_data(), Part 7: VSCode Docstring Generator (3:58)
🔗 Checkpoint Link
2.4 Intro to Python Packages & Modules
📦 Making a Package (my_pandas_extensions): Adding the database module (4:41)
🥳Congrats! You're learning really powerful concepts. (1:06)
2.5 Checkpoint: Module 2 - SQL Databases
🔽 Code Checkpoint Zip - Module 2 [File Download]
3.0 Pandas Data Analysis Deep Dive
🔽 Getting Started [File Download] (2:24)
⚠️⚙️ [VSCode Setting] Jupyter: Send Selection to Interactive Window (1:12)
3.1 Data Structures for Analysis
Package & Function Imports (1:28)
My Pandas Extensions: Fix FutureWarning Message (regex) (1:28)
3.1.1 Python Objects (How Python Works)
How Python Works: Objects (5:29)
3.1.2 Data Structures for Analysis
Pandas DataFrame & Series (2:51)
Numpy Arrays (4:08)
🔗 Checkpoint Link
3.1.3 Python's Built-in Data Structures & Data Types
Python Builtin Data Structures: Dictionary, List, Tuple (5:53)
Python Builtin Data Types: Int, Float, Str, Bool, (3:41)
🔗 Checkpoint Link
3.1.4 Casting (Data Type Conversion)
Casting Basics: Numeric & String Conversions (4:09)
Casting Sequences: To List, Numpy Array, Pandas Series, & DataFrame (2:40)
Pandas Series Dtype Conversion (1:43)
🔗 Checkpoint Link
3.2 Pandas Core Functions: Deep-Dive
Pandas Data Wrangling Setup (2:08)
3.2.1 Column-Wise Data Frame Selection
Subsetting Columns by Name (2:16)
Subsetting by Column Index (Position): iloc[] (1:35)
💪 Subsetting Columns with Regex (Regular Expressions) (3:37)
Rearranging a Single Column (Column Subsetting) (2:16)
Rearranging Multiple Columns (Repetitive Way First) (1:43)
Rearranging Multiple Columns (List Comprehension) (2:50)
💪 Data Frame Rearrange: Select Dtypes, Concat, & Drop (6:32)
🔗 Checkpoint Link
3.2.2 Arranging Rows
💪 Sort Values (3:06)
🔗 Checkpoint Link
3.2.3 Rowwise Filtering (Slicing)
💪 Simple Filters with Boolean Series (3:54)
💪 Query Filters (3:47)
Filtering with isin() and ~ (3:40)
Index slicing with df.iloc[] (2:41)
Getting Distinct Values: Drop duplicates (1:43)
N-Largest and N-Smallest (2:14)
Random Samples (1:52)
🔗 Checkpoint Link
3.2.4 Calculated Columns (Mutating / Assigning)
DataFrame Column Assignment: Calculated Columns (2:24)
💪 Assign Basics: Lambda Functions (3:10)
Assign Cookbook: Making a Log Transformation (3:31)
Assign Cookbook: Searching Text (Boolean Flags) (5:26)
Assign Cookbook: Even-Width Binning with pd.cut() (3:45)
✨Visualizing Binning Strategies with a Pandas Heat Table (2:59)
Assign Cookbook: Quantile Binning with pd.qcut() (2:35)
🔗 Checkpoint Link
3.2.5 Grouping & Aggregate / Apply
➕ Aggregation Basics (Summarizations) (5:48)
Common Summary Functions (4:10)
💪 Groupby + Aggregate Basics (Summarizations) (5:26)
Groupby + Agg Cookbook (♻️Summary DF 1): Sum & Median Total Price By Category 1 & 2 (3:13)
Groupby + Agg Cookbook (♻️Summary DF 2): Sum Total Price & Quantity By Category 1 & 2 (3:23)
Groupby + Agg Details: Examining the Multilevel Column Index (2:00)
Groupby + Agg Cookbook (♻️Summary DF 3): Grouping Time Series with Groupby & Resample (4:11)
💪 Groupby + Apply Basics (Transformations) (3:41)
Groupby + Apply Cookbook: Transform All Columns by Group (2:33)
Groupby + Apply Cookbook: Filtering Slices by Group (3:24)
🔗 Checkpoint Link
3.2.6 Renaming Columns
Renaming Basics: Renaming All Columns with Lambda (4:27)
Renaming Basics: Targeting Specific Columns (1:20)
Advanced Renaming: Renaming Multi-Index Columns (5:56)
🔗 Checkpoint Link
3.2.7 Reshaping (Pivoting)
Set Up Summarized Data: Revenue by Category 1 (4:59)
💪 Pivot: To Wide Format (6:41)
✨Export a Stylized Pandas Table to Excel (Wide Data) (6:08)
💪 Melt: To Long Format (3:30)
✨Plotnine - Making a Faceted Horizontal Bar Chart (Tidy Long Data) (4:33)
Intro to Categorical Data: Sorting the Plotnine Plot (6:08)
💪 Pivot Table (An awesome function for BI Tables) (7:41)
Unstack: A programmatic version of pivot() (4:09)
Stack: A programmatic version of melt() (2:24)
🔗 Checkpoint Link
3.2.8 Joins
💪 Merge: Data Frame Joins (4:11)
💪 Concat: Binding DataFrames Rowwise & Columnwise (4:26)
🔗 Checkpoint Link
3.2.9 Splitting & Uniting Text Columns
🖖 Splitting Text Columns (3:07)
🤞 Combining Text Columns (1:05)
🔗 Checkpoint Link
3.2.10 The Apply Function (In-Depth)
Set Up Summarized Data: Sales by Category 2 Daily (3:01)
Apply: Lambda Aggregations vs Transformations (2:21)
Apply: Broadcasting Aggregations (1:52)
Grouped Apply: Broadcasting (2:23)
Grouped Transform: Alternative to Grouped Apply (Fixes Index Issue) (2:02)
🔗 Checkpoint Link
3.2.11 [Advanced] The Pipe: Method Chaining Helper
Making a "Data Frame" Function: add_columns() (6:06)
Pipe: Method chaining our custom function using the pipe (3:11)
🔗 Checkpoint Link
3.3 Code Checkpoint: Module 3 - Pandas Core
🔽 Code Checkpoint Zip - Module 3 [File Download]
⛰️ 3.4 Challenge #1: Test Your Data Wrangling Skills
🔽 Challenge #1: Data Wrangling with Pandas [File Download] (1:15)
💡 3.4.1 Introduction to JupyterLab Notebooks
Method 1: Jupyter VSCode Integration (2:24)
Method 2: Jupyter Notebooks (Legacy Method) (2:06)
🆒 Method 3: JupyterLab (Next Generation of Jupyter) (3:15)
3.4.2 Challenge #1 Assignment
Challenge Objectives (3:07)
⚠️ Getting Started: Syncing Your JupyterLab Current Working Directory (%cd and %pwd) (5:09)
Challenge Tasks (3:17)
🆘 Challenge Solution (8:39)
🎉 Congrats! You've finished your first challenge. (1:36)
Part 2: Time Series Forecasting Automation
Automating Time Series Forecasting (1:39)
4.0 Data Exploration & Time Series Fundamentals
🔽 Getting Started [File Download] (1:48)
⚠️⚙️ VSCode Extension: Browser Preview (1:39)
4.1 Pandas Profiling
Package Imports (1:39)
The ProfileReport() Class (1:09)
4.1.1 Profile Report Components
Section 1: Profile Overview (3:18)
Section 2A: Numeric & Date Variables (6:02)
Section 2B: Categorical (Text) Variables (5:01)
Sections 3-6: Interactions, Correlations, Missing Values, & Sample (2:51)
🔗 Checkpoint Link - Module 4
4.1.2 Profiling Workflow
Pandas Extension: df.profile_report() (3:08)
Exporting the Profile Report as HTML (1:35)
🔗 Checkpoint Link - Module 4
4.2 Time Series Fundamentals
Getting Started (0:49)
4.2.1 Pandas Datetime Basics
TimeStamp & Period Conversions (2:58)
Pandas Datetime Accessors (1:55)
Date Math: Offsetting Time with TimeDelta's (2:38)
Date Math: Getting Duration between Two TimeStamps (3:27)
Creating Date Sequences: pd.date_range() (3:08)
🔗 Checkpoint Link - Module 4
4.2.2 Periods & Time-Based Groupings (Resampling)
💪Periods (In-Depth) (7:57)
💪Resampling (In-Depth): ♻️ bike_sales_m_df (6:23)
💪Grouped Resampling (In-Depth): ♻️ bike_sales_cat2_m_wide_df (6:37)
Reorganizing: Adding Comments (1:30)
🔗 Checkpoint Link - Module 4
4.2.3 Measuring Change
Differencing with Lags (Single Time Series) (5:38)
Differencing with Lags (Multiple Time Series) (2:04)
Difference from First (Single Time Series) (1:42)
Difference From First (Multiple Time Series) (0:57)
🔗 Checkpoint Link - Module 4
4.2.4 Cumulative Calculations (Expanding Windows)
Cumulative Expanding Windows (Single Time Series) (3:20)
Cumulative Expanding Windows (Multiple Time Series) (1:37)
🔗 Checkpoint Link - Module 4
4.2.5 Rolling Window Calculations
Moving Average (Single Time Series) (8:14)
Moving Average (Multiple Time Series) (4:36)
🔗 Checkpoint Link - Module 4
4.4 Code Checkpoint: Module 4 - Time Series Fundamentals
🗺️ Next Steps (Where we are headed) (1:16)
🔽 Code Checkpoint Zip - Module 4 [File Download]
5.0 Functional Programming
🔽 Getting Started [File Download] (1:36)
5.1 Functional Programming with Pandas [Outlier Detection Function]
Setup: Python Imports & Data (0:45)
5.1.1 Examining Pandas Functions
Function Anatomy: pd.Series.max() (3:52)
Errors (Exceptions) (1:02)
Function Names (1:16)
Function Anatomy: **kwargs (5:11)
🔗 Checkpoint Link - Module 5
5.1.2 Detect Outliers Function
Detect Outliers: Function Setup (2:18)
5.1.2.1 Building an Outlier Detection Function
IQR Outlier Method, Part 1 (3:36)
IQR Method, Part 2 (4:06)
New Argument: IQR Multiplier (1:46)
New Argument: How? (Both, Upper, Lower) (2:35)
🔗 Checkpoint Link - Module 5
5.1.2.2 Adding Checks: Raising Informative Exceptions
Checking for Pandas Series Input (2:10)
Checking IQR Multiplier for Int or Float Type (2:53)
Checking that IQR Multiplier is a Positive Value (1:09)
Checking that How is a Valid Option: both, lower, upper (2:18)
🔗 Checkpoint Link - Module 5
5.1.2.3 Finalizing the Function
⚙️ Informative Help Documentation: Adding a Docstring (7:10)
Testing Our Function: Detecting Outliers within Groups (3:04)
Extending the Pandas Series Class (2:11)
🔗 Checkpoint Link - Module 5
5.2 Summarize By Time Function
Summarize By Time: A handy function for time series wrangling (3:59)
5.2.1 Beginning the Summarize by Time Function
Setting Up the "Summarize By Time" Function (4:55)
Handling the Date Column Input (1:30)
Handling Groups Input (2:02)
Handling the Time Series Resample (4:13)
Handling the Aggregation Function Input (3:15)
Handling the Value Column Input (1:39)
🔗 Checkpoint Link - Module 5
5.2.2 Debugging the Value Column 🐜
Forcing the Value Column Input to a List (to generate a data frame) (2:43)
🐜 Bug! Thinking through a solution (2:25)
Solution: Converting to a Function Dictionary with Zip + Dict (3:51)
🔗 Checkpoint Link - Module 5
5.2.3 Handling the Output Formatting (Wide Data)
Handling the Unstack (2:01)
Handling the Period Conversion (2:50)
Add Fill Missing Capability (2:24)
🔗 Checkpoint Link - Module 5
5.2.4 Finalizing the Function & Adding to Our Extensions Package
Review the Core Functionality (1:24)
Check Incoming Data: Raising a TypeError (1:49)
Adding the Docstring (7:27)
⚠️📦Pandas Flavor: Extending Pandas DataFrame Class (6:22)
🔗 Checkpoint Link - Module 5
5.3 Code Checkpoint: Module 5 - Functional Programming
🔽 Code Checkpoint Zip - Module 5 [File Download]
6.0 Forecasting with Sktime
🔽 Getting Started [File Download] (3:02)
📘 Sktime Documentation (4:35)
🌐 How to Google Search like a Pro (1:34)
6.1 Introduction to Sktime Forecasting
Set Up & Imports (2:40)
6.1.1 Data Summarizations (Always Needed Prior to Forecasting)
Summarizing to get Total Revenue by Month (4:59)
Summarizing to get Total Revenue by Category 2 & Month (2:40)
🔗 Checkpoint Link - Module 6
6.1.2 Single Time Series Forecasting: AutoARIMA()
💡 What is AutoARIMA? (4:58)
💪 AutoARIMA Applied: Forecaster, Fit, Predict (8:24)
Adding Confidence Intervals (Prediction Intervals) (2:40)
Tuple Unpacking (Predictions, Confidence Intervals) (2:38)
📈 Forecast Visualization (5:27)
Code Housekeeping 🧹 (0:23)
🔗 Checkpoint Link - Module 6
6.1.3 Multiple Time Series Forecasting (Modeling within For-Loops)
Multiple Time Series Forecasting: AutoARIMA() (3:09)
For Loop: Iterate Across the DataFrame Columns (2:19)
For Loop: Modeling AutoARIMA() (5:22)
For-Loop: Getting the Confidence Intervals (1:31)
For-Loop: Combine with DataFrame | Actual Values, Predictions, & CIs (4:11)
For-Loop: Storing the Results (as a Dictionary) (3:35)
Housekeeping: Appending Variable Types to Variable Names (1:52)
Visual Forecast Assessment (2:42)
TQDM: Progress Bars (3:40)
🔗 Checkpoint Link - Module 6
6.2 The ARIMA Forecast Automation
Setting up the ARIMA Automation Function (3:44)
6.2.1 Building the ARIMA Forecasting Automation
Making arima_forecast() | Function Definition (3:18)
Function Body | Setting Up the Iteration (4:40)
Training the AutoARIMA() Models (3:01)
Controlling Progress Bars: tqdm(min_interval) (1:11)
Making Predictions and Confidence Intervals (2:08)
Combine Results into a DataFrame (2:23)
Compose a Prediction Dictionary (1:49)
Return Results as a Single DataFrame | Rowwise Concatenation (2:36)
Setting the Column Names of the Output (9:14)
Drop remaining columns beginning with "level_" (2:50)
Testing the arima_forecast() function (2:04)
🔗 Checkpoint Link - Module 6
6.2.2 The forecasting.py Module
Creating the forecasting.py module (3:43)
Docstring: arima_forecast() (1:31)
Adding Checks: arima_forecast() (6:34)
Finally - Check Your Forecasts with Grouped Pandas Plotting (2:28)
Recap: You've just made an ARIMA Forecast Automation! (1:09)
🔗 Checkpoint Link - Module 6
6.3 Checkpoint
🔽 Code Checkpoint Zip - Module 6 [File Download]
Challenge 2: Make an AutoETS() Forecast Automation
Introduction to ETS Forecasting (Exponential Smoothing) (2:06)
🔽 Challenge 2 [File Download] (6:06)
Solution (5:17)
Part 3: Visualization & Report Automation
Part 3: Visualization & Reporting (1:23)
7.0 Visualization with Plotnine
🔽 Getting Started [File Download] (0:31)
📘 Plotnine Documentation (3:14)
7.1 Plotnine Basics
Plotnine Anatomy: Imports (2:56)
7.1.1 Data and Geometry Basics
Data Summarization: For Plotting Annual Bike Sales (2:53)
The Plot Canvas: Mapping Columns to Plot Components (7:12)
Plotnine Geometries (3:59)
Adding a Trend Line: geom_smooth() (2:59)
🔗 Checkpoint Link - Module 7
7.1.2 Formatting Basics
Formatting Plots (1:52)
Expand Limits (1:41)
Scales: Dollar Format for Y-Axis (3:51)
Scales: Date Format for X-Axis (2:14)
Labs and Themes (2:57)
Saving the ggplot (1:17)
Exploring the Plotnine Object (2:23)
🔗 Checkpoint Link - Module 7
7.2 Plotnine In-Depth
Setting Up (2:19)
7.2.1 Scatter Plot and Line Plot | geom_point() and geom_line()
Scatter Plot: Data Manipulation (2:51)
Scatter Plot: Visualization (3:16)
Line Plot: Data Manipulation (2:07)
Line Plot: Visualization (5:28)
🔗 Checkpoint Link - Module 7
7.2.2 Column Plot (Bar Plot) | geom_col()
Data Manipulation, Part 1: No Categorical Ordering (2:48)
Visualization, Part 1: Without Categorical Ordering (1:34)
Aside: Introduction to Plotting using Categorical Data Type (9:54)
Finalizing the Horizontal Bar Chart (1:19)
🔗 Checkpoint Link - Module 7
7.2.3 Histograms and Density Plots | geom_histogram() and geom_density()
Histogram: Data Manipulation (2:47)
Histogram: Visualization (2:14)
Histogram: Using Fill Aesthetic to Explore Differences by a Category (2:50)
Histogram: Using Facet Grids to Compare Distributions by Category (2:47)
Density Plots: Kernel Density Estimation (KDE) using geom_density() (2:54)
🔗 Checkpoint Link - Module 7
7.2.4 Box Plots and Violin Plots | geom_boxplot() and geom_violin()
Box Plot: Data Manipulation (2:19)
Box Plot: Visualization (7:23)
Violin Plot with Jitter: geom_violin() and geom_jitter() (3:31)
🔗 Checkpoint Link - Module 7
7.2.5 Text and Labels | geom_text() and geom_label()
Data Manipulation: Add a Total Price Text Column with USD Dollar Format (6:08)
Creating the Bar Plot: geom_col() and geom_smooth() (3:10)
Adding Text to a Bar Plot: geom_text() (5:34)
Highlighting an Outlier with a Label: geom_label() (5:57)
Finalizing the Plot with Scales and Themes (3:38)
🔗 Checkpoint Link - Module 7
7.2.6 Plot Customizations | Facets, Scales, & Themes
Sales by Month and Category 2: Data Manipulation (4:40)
Facets: Adding subplots "facets" with facet_wrap() (6:54)
Scales: Applying scales to alter x, y, and color mappings (4:33)
Themes: Theme Customization with Pre-Built Themes | theme_matplotlib() (3:52)
Theme Elements: Customization with theme() (5:32)
Plot Title and X/Y-Axis Labels: labs() (4:43)
🔗 Checkpoint Link - Module 7
Mini-Challenge: Convert our Cyberpunk 2077 Plot to a Business Science Theme
Challenge: Change the Dark Theme to Business Science Theme
Solution: Business Science Theme
7.3 Building the Plot Forecast Function
Getting Started (1:20)
Package Imports (2:09)
Our Forecasting Workflow Recap (4:59)
7.3.1 Forecast Plot
Data Preparation: Melting the Value and Prediction Columns (4:50)
Data Preparation: Fixing the FutureWarning (3:03)
Visualization: Setting up the canvas with ggplot() (3:34)
Visualization: Adding geoms and facets (5:42)
Visualization: Scales and Theme Minimal (5:10)
Visualization: Customizing the Theme Elements (4:21)
🔗 Checkpoint Link - Module 7
7.3.2 Forecast Plot Automation
Making the plot_forecast() Function Definition (3:22)
Data Wrangling: Implementing the Melt (4:37)
Handling the Time-Based Column: Converting to TimeStamp (8:51)
Visualization: Parameterizing the Plot (8:55)
Testing the Forecast Plot Function Parameters (7:09)
Testing the Automation Workflow (1:29)
Reordering the Subplots using Cat Tools (6:14)
Adding the plot_forecast() function to our forecasting module (3:35)
🔽 Docstring | Testing Our Imported plot_forecast() Function (3:29)
🔗 Checkpoint Link - Module 7
7.4 Code Checkpoint - Module 7
🔽 Code Checkpoint Zip - Module 7 [File Download]
8.0 Debugging: Building & Debugging the Database Read/Write Automation
🔽 Getting Started [File Download] (1:55)
8.1 Database Update: Developing Read/Write Functionality
Package Imports (2:32)
Reviewing Our Files (1:36)
Generating the Forecasting Workflow (5:25)
Generating the Forecast Visualization (1:37)
Overview of the Database I/O Process (1:26)
🔗 Checkpoint Link - Module 8
8.1.1 Preparation & Validation Functionality
Preparing the Forecast for Update (5:43)
Validating the Column Names (6:10)
Testing the Prep Forecast for Database Function (1:14)
🔗 Checkpoint Link - Module 8
8.1.2 Write Forecast to Database Function
Setting Up the Write Forecast to Database Function (5:27)
Modularizing the Data Preparation Step (1:18)
Specifying SQL Data Types (6:46)
Write to Database (6:49)
Close Connection (0:54)
Testing Our Function (4:28)
🔗 Checkpoint Link - Module 8
8.1.3 Read Forecast from Database Function
Creating our Read Forecast Function (5:59)
🔗 Checkpoint Link - Module 8
8.1.4 Add Functions to Database Module
Adding Functions to Database Module (4:18)
📄 Docstrings (3:06)
🔗 Checkpoint Link - Module 8
8.2 Debugging the Automation Workflow
Automation Workflow with Database I/O (2:43)
8.2.1 Testing the Summarizing & Forecasting Automation Workflow
Forecasting 1: Total Revenue (4:42)
Fix #1: Reorder Columns in Prep Data Function (4:29)
Plotting Total Revenue Forecast (1:24)
Forecasting 2: Revenue by Category 1 (5:32)
Forecasting 3: Revenue by Category 2 (4:36)
Forecasting 4: Forecast Quarterly Revenue by Customer (5:33)
Fix #2: Prep Data | Add timestamp conversion (1:32)
Rerun Our Workflow: Success! (3:19)
🔗 Checkpoint Link - Module 8
8.2.2 Testing the Write Database Workflow
Writing to the Database (3:14)
💡 Pro-Tip: Saving Intermediate Data (1:45)
Utility Function: Convert to Datetime (6:58)
Rerun the Forecast Workflow (3:45)
Read Forecast from Database (2:00)
Recap: Debugging is a Skill (3:41)
🔗 Checkpoint Link - Module 8
8.3 Code Checkpoint - Module 8
🔽 Code Checkpoint Zip - Module 8 [File Download]
Module 9 | Jupyter Reporting Automation (Part 1): Automating Jupyter Notebooks
Jupyter Automated Reporting (1:15)
🔽 Getting Started [File Download] (2:53)
9.0 Automatic Forecasting... The Update Database Script
The Updated Database Script: Automatically Run Forecasts (5:48)
python update_database.py (3:27)
SQLite Explorer (1:22)
9.1 Jupyter Sales Analysis
Setting Up the Working Directory (6:13)
Importing Data and Parameterizing a Header with Markdown (6:11)
Parameterizing a Paragraph with Markdown (3:55)
Performance Summary: Pivot Table, Part 1 (5:34)
Performance Summary: Pivot Table, Part 2 (2:13)
Plotting the Forecast: plot_forecast() (2:03)
🔗 Checkpoint Link - Module 9
9.2 Papermill
Papermill Setup (1:15)
Package Imports (2:11)
Papermill Documentation (3:18)
🔗 Checkpoint Link - Module 9
9.2.1 Making Parameters
Developing Parameters: Game Plan (2:10)
Making ID Sets, Part 1 (3:20)
Making ID Sets, Part 2 (4:31)
🔗 Checkpoint Link - Module 9
9.2.2 Setting Up the Directory (Programmatically)
Part 1: Intro to Pathlib and OS (3:01)
Part 2: Detecting Directories Exist & Making New Directories (4:41)
🔗 Checkpoint Link - Module 9
9.2.3 Creating the Jupyter Template
Jupyter Template Setup (2:56)
Parameterizing the Jupyter Template (3:48)
Finishing the Juyter Template Parameterization (3:46)
🔗 Checkpoint Link - Module 9
9.2.4 Automating Jupyter Notebooks with Papermill
The pm.exectute_notebook() function (4:05)
Setting Up Key Parameters (6:01)
Iterating without a For-Loop (6:08)
Iterating with a For-Loop (6:00)
🔗 Checkpoint Link - Module 9
9.3 Run Reports Function: Version 1
Getting Started (1:07)
Setting Up the Report Parameters (3:32)
🔗 Checkpoint Link - Module 9
9.3.1 Handling Paths
Creating a Resource Path (1:28)
String Transformation: Make File Names from Report Titles (6:31)
🔗 Checkpoint Link - Module 9
9.3.2 Building the Reporting Function
Setting Up run_reports() (2:45)
Make the Report Directory (4:47)
Setting Up the For-Loop Parameters (6:22)
Setting Up Jupyter Notebook Execution (Inside of For-Loop) (4:01)
🔗 Checkpoint Link - Module 9
9.3.3 Adding Run Reports to the Python Module
Package Resources: Setting Up the Template Path (6:03)
Integrating the Run Reports Function into Our Package (4:34)
🔗 Checkpoint Link - Module 9
9.4 Checkpoint: Module 9 - Jupyter Automation, Part 1
🔽 Code Checkpoint Zip - Module 9 [File Download]
Module 10: Jupyter Automation (Part 2): Automating HTML & PDF Reports
🔽 Getting Started [File Download] (3:31)
10.0 NB Convert: HTML & PDF Conversion Setup
NB Convert Documentation & Installation Requirements (1:49)
Step 1: Pandoc Installation (1:05)
Step 2: Tex Installation (MikTex Windows Shown | Mac Use MacTex) (1:05)
HTML Report Conversion (1:33)
PDF Report Conversion (1:03)
10.1 NB Convert Automation
Setup & Imports (4:21)
Making the Config() (4:22)
Locating Files with Glob (3:19)
Exporting an HTML Report Programmatically (6:38)
HTML Automation: Using a For-Loop to Convert All 4 Reports (5:50)
PDF Automation: Using a For-Loop to Convert All 4 Reports (5:59)
🔗 Checkpoint Link - Module 10
10.2 Run Reports Function, Version 2: run_reports()
Getting Set Up (2:41)
Integrating glob: Pulling the Jupyter Notebook File Paths (2:46)
🏗️ Integrate "Convert to HTML" Report Automation (4:11)
🧪 Test "Convert to HTML" Report Automation (2:31)
🏗️ Integrate "Convert to PDF" Report Automation (1:46)
🧪 Test "Convert to PDF" Report Automation (3:39)
🔗 Checkpoint Link - Module 10
10.3 Upgrading our My Pandas Extensions & Making run_forecast_reports.py
My Pandas Extensions: Upgrade reporting.py with HTML & PDF Reports, Part 1 (6:31)
My Pandas Extensions: Upgrade reporting.py with HTML & PDF Reports, Part 2 (4:00)
Resources for Improving PDF Reports
Run Forecast Reports Py: Part 1 - The main() function (5:07)
Run Forecast Reports Py: Part 2 - Adding Timestamps to Folders (6:01)
Run Forecast Reports Py: Part 3 - Running Reports (2:56)
Run Forecast Reports Py: Part 4 - Adjusting Folder Automation (3:13)
🔗 Checkpoint Link - Module 10
10.4 Checkpoint: Module 10 - Jupyter Automation, Part 2
🔽 Checkpoint - Module 10 [File Download]
✨✨✨ BONUSES: Scheduling Python Scripts
Scheduling Python Scripts Bonus!!! ✨ (0:27)
BONUS #1: Windows Task Scheduler
Making the Batch File (.bat) to run our Python Script (2:25)
Setting up Automated Tasks with Windows Task Scheduler (2:13)
Debugging Windows Task Scheduler Tasks with Pause (0:39)
Fixing the SQL Alchemy Connection (1:52)
Removing the Automation: Disable & Delete (0:23)
BONUS #2: Mac Automator & Calendar App Automation
Python Script Setup | SQL Database Absolute Path (2:30)
The Mac Automator (3:22)
Scheduling the Automator App with Calendar (2:00)
CONGRATULATIONS!!! You Did It! 🥳🥳🥳
Congratulations!!! (1:10)
SPECIAL BONUS CONTENT 😲
About the Special Bonus Content
Forecasting 100 Time Series in Python with Sktime (93:10)
✨Plotnine - Making a Faceted Horizontal Bar Chart (Tidy Long Data)
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock