logo

All Skills

Google Sheets as a Database

Why and when to use Sheets as your backend.

pythongoogle-sheetsdatabase

Deploying Python Web Apps

Getting your Sheets-backed app online.

pythongoogle-sheetsdeployment

Exposing Sheets with FastAPI

Turn your spreadsheet into a JSON API.

pythongoogle-sheetsfastapi

Reading Data from Google Sheets

Fetch data from a spreadsheet into Python.

pythongoogle-sheetspandas

Setting Up Google Sheets API

How to enable the Google Sheets API and get your credentials.

pythongoogle-sheetsapi

Writing to Google Sheets

Update your spreadsheets programmatically with Python.

pythongoogle-sheets

Caching for Performance

Speed up your app by caching expensive operations.

pythonstreamlit

Session State

Remember values between reruns.

pythonstreamlit

Layout and Columns

Organize your app with layout elements.

pythonstreamlit

Creating Charts

Visualize data with built-in charts.

pythonstreamlit

Displaying DataFrames

Show pandas DataFrames beautifully.

pythonstreamlit

Getting User Input

Collect input with widgets.

pythonstreamlit

Displaying Text

Show text, titles, and markdown.

pythonstreamlit

What is Streamlit?

Build web apps with pure Python.

pythonstreamlit

Stacking Multiple Decorators

Apply multiple decorators to one function.

pythondecorators

Class-Based Decorators

Use classes instead of functions for stateful decorators.

pythondecorators

Timing Function Execution

A practical decorator example for measuring performance.

pythondecorators

Decorators That Take Parameters

Pass configuration to your decorators.

pythondecorators

Preserving Function Metadata

Use @functools.wraps to keep the original function info.

pythondecorators

Decorators with Arguments

Handle functions that take arguments.

pythondecorators

Writing Your First Decorator

The basic pattern for creating decorators.

pythondecorators

What Are Decorators?

Modify function behavior without changing function code.

pythondecorators

Connection Best Practices

Handle connections safely with context managers.

pythonsql

Aggregating Data

Calculate sums, averages, and counts.

pythonsql

Joining Tables

Combine data from multiple tables.

pythonsql

Creating Tables

Define table structure with CREATE TABLE.

pythonsql

Updating and Deleting Data

Modify or remove existing rows.

pythonsql

Inserting Data

Add new rows to database tables.

pythonsql

Querying Data with SELECT

Retrieve data from database tables.

pythonsql

SQL and Python Together

Connect to databases from Python code.

pythonsql

Fragments for Reusable Fields

Share field selections across queries.

pythongraphql

Understanding the Schema

The contract between client and server.

pythongraphql

GraphQL Clients in Python

Query GraphQL APIs from Python.

pythongraphql

Variables in GraphQL

Parameterize queries for reuse and safety.

pythongraphql

Mutations for Writing Data

Create, update, and delete with mutations.

pythongraphql

Writing GraphQL Queries

Request data with the query syntax.

pythongraphql

What is GraphQL?

A query language for APIs that gives clients control.

pythongraphql

JSON with APIs

Send and receive JSON from web APIs.

pythonjson

Custom JSON Encoding

Serialize Python objects JSON doesn't understand.

pythonjson

Handling JSON Errors

Deal with invalid JSON gracefully.

pythonjson

JSON and Python Type Mapping

How Python types become JSON types.

pythonjson

Pretty Printing JSON

Make JSON readable with proper formatting.

pythonjson

Parsing and Creating JSON

Convert between JSON strings and Python objects.

pythonjson

What is JSON?

The universal data format for the web.

pythonjson

Custom Validators

Write your own validation logic.

pythonpydantic

Serialization with model_dump()

Convert models to dictionaries and JSON.

pythonpydantic

Nested Models

Models inside models for complex data.

pythonpydantic

Field Constraints with Field()

Add validation rules to individual fields.

pythonpydantic

Optional and Default Values

Make fields optional or give them defaults.

pythonpydantic

How Validation Works

Pydantic validates and coerces data automatically.

pythonpydantic

Creating Models with BaseModel

Define your data schema as a Python class.

pythonpydantic

What is Pydantic?

Data validation using Python type hints.

pythonpydantic

Partial Application with functools.partial

Pre-fill some arguments to a function.

pythonfunctional

Higher-Order Functions

Functions that take or return functions.

pythonfunctional

List Comprehensions

Pythonic way to transform and filter.

pythonfunctional

Lambda Functions

Small anonymous functions for quick tasks.

pythonfunctional

Aggregating with reduce()

Combine all items into a single value.

pythonfunctional

Selecting Data with filter()

Keep only items that pass a test.

pythonfunctional

Transforming Data with map()

Apply a function to every item in a sequence.

pythonfunctional

Pure Functions

Functions without side effects.

pythonfunctional

What is Functional Programming?

A different way to think about code.

pythonfunctional

Scraping Ethics and Best Practices

Scrape responsibly and avoid getting blocked.

pythonscraping

Handling Pagination

Scrape data across multiple pages.

pythonscraping

Extracting Attributes

Get href, src, and other HTML attributes.

pythonscraping

CSS Selectors for Precise Selection

Use CSS selector syntax to find elements.

pythonscraping

find() vs find_all()

Find one element or many elements.

pythonscraping

Parsing HTML with BeautifulSoup

Turn messy HTML into navigable Python objects.

pythonscraping

Fetching Pages with Requests

Download web pages using the requests library.

pythonscraping

What is Web Scraping?

Extracting data from websites automatically.

pythonscraping

Class Methods with @classmethod

Methods that work on the class itself, not instances.

pythonoop

Dataclasses for Less Boilerplate

Automatically generate __init__, __repr__, and more.

pythonoop

Inheritance Basics

Create new classes based on existing ones.

pythonoop

Properties with @property

Create computed attributes that look like regular attributes.

pythonoop

__str__ and __repr__

Control how objects display as strings.

pythonoop

Using super()

Call methods from the parent class.

pythonoop

The __init__ Method

Initialize objects with starting values.

pythonoop

Defining Methods

Methods are functions that belong to a class.

pythonoop

Understanding self

self refers to the current object instance.

pythonoop

What is a Class?

Classes are blueprints for creating objects.

pythonoop

The apply() Function

Run custom functions on DataFrame rows or columns.

pythonpandas

Concatenating DataFrames

Stack DataFrames vertically or horizontally.

pythonpandas

Merging DataFrames

Combine two DataFrames based on common columns.

pythonpandas

Types of Merges (Joins)

Inner, left, right, and outer joins explained.

pythonpandas

Pivot Tables in Pandas

Reshape data into summary tables.

pythonpandas

Counting Values with value_counts()

Count occurrences of unique values in a column.

pythonpandas

Extracting Date Components

Pull year, month, day from datetime columns.

pythonpandas

Parsing Dates in Pandas

Convert strings to datetime objects.

pythonpandas

String Operations in Pandas

Work with text data using the str accessor.

pythonpandas

Extracting Text Patterns

Pull specific parts from strings using patterns.

pythonpandas

GroupBy with Multiple Aggregations

Apply multiple functions to grouped data.

pythonpandas

GroupBy - Splitting Data into Groups

Group rows by column values for aggregate analysis.

pythonpandas

Detecting Missing Data

Find null and NaN values in your data.

pythonpandas

Dropping Missing Data

Remove rows or columns with null values.

pythonpandas

Filling Missing Data

Replace null values with meaningful substitutes.

pythonpandas

Adding New Columns

Create new columns in a DataFrame.

pythonpandas

Creating Computed Columns

Calculate new columns from existing ones.

pythonpandas

Dropping Columns

Remove unwanted columns from a DataFrame.

pythonpandas

Renaming Columns

Change column names in a DataFrame.

pythonpandas

Sorting by Column Values

Order rows based on column values.

pythonpandas

Filtering Rows by Condition

Select rows that match specific criteria.

pythonpandas

The isin() Method for Filtering

Check if values are in a list of options.

pythonpandas

Filtering with Multiple Conditions

Combine conditions with AND and OR logic.

pythonpandas

The query() Method for Readable Filters

Write filters as readable strings.

pythonpandas

Selecting Columns in Pandas

Access single or multiple columns from a DataFrame.

pythonpandas

Selecting Rows by Position

Access specific rows using iloc for position-based selection.

pythonpandas

Creating a DataFrame from Scratch

Build DataFrames from dictionaries, lists, and other sources.

pythonpandas

Reading CSV Files with Pandas

Load data from CSV files into a DataFrame.

pythonpandas

Viewing DataFrame Data

Quickly inspect your data with head, tail, and info.

pythonpandas

What is a Pandas DataFrame?

Understanding the core data structure in pandas.

pythonpandas