Skip to content

thomasbase/Pokemon-Widgets

Repository files navigation

Pokemon-Widgets

Project Scope

This project demonstrates an end-to-end data workflow by extracting, cleaning, and visualizing rich structured data from online Pokémon databases. While the subject matter is gamified, the techniques and technologies reflect real-world data science and data engineering challenges, including web scraping, data wrangling, and interactive analytics. The scope of this project is limited to Pokemon from generations 1-5 (games that were playable on the Nintendo DS lite).


Notebooks Overview

The project is composed of multiple interconnected Jupyter notebooks:

  • National Pokedex.ipynb:
    Defines core web scraping functionality used by all other notebooks.

  • Movesets and Natures.ipynb:
    Extracts and processes data on Pokémon moves, abilities, and natures. This notebook generates local .pkl files containing dictionaries of DataFrames (logic documented within the notebook).

  • Items and TMs.ipynb:
    Processes item data and technical machine (TM) availability.

  • Types.ipynb:
    Contains logic for Pokémon type effectiveness and matchups.

  • Widgets.ipynb:
    Final UI notebook. Consolidates outputs from all other notebooks into a widget-based interface for querying and visualizing Pokémon data.


Usage

Install and open Jupyter Notebook

In the Widgets notebook, select "run", then "run all" on the bar at the top of the page. This will execute every command in the notebook, prompting the user to select their preferences at the bottom of the notebook. To change viewing preference, rather than selecting "run all" again, select inside the last cell of the notebook and press shift+enter on the keyboard. This will re-execute the single block of code that triggers the display of the widgets.

Sample Outputs

Below are screenshots demonstrating user queries from the Widgets.ipynb notebook:

Stats View
Pokemon Stats

Moveset and Abilities
Pokemon Movesets

Head-to-Head Matchup
Pokemon Matchup

Type Matchups
Type Matchup

Regional Pokédex
Regional Pokedex

National Pokédex
National Pokedex

Move Search by Type
Moves by Type

Items View
Items

Nature Effects
Natures


Technologies Used

  • Python
  • Jupyter Notebooks
  • Requests / Web Scraping
  • Pandas / DataFrames
  • IPyWidgets for interactivity
  • Matplotlib / Plotly for visualization