The How High Project focuses on analyzing and processing datasets related to F1 drivers and constructor teams. The project aims to provide insights into the performance metrics of F1 entities and to visualize the data using tools like Tableau.
- Set up a local database and read data in with SQLite.
- Clean data and perform a SQL join with data sets using plain SQL.
- Develop a user-friendly interface for data interaction through Tableau.
- Utilize a virtual environment and include instructions in the README.md file on how to set one up.
- Annotate .py files with well-written comments and a clear README.md.
- Python 3.10 or later
- Virtual Environment (optional but recommended)
- Visual Studio Code (VS Code) or any other preferred IDE with Jupyter Notebook support
To set up this project, follow these steps:
-
Clone the Repository:
Open your terminal or IDE terminal and run:
git clone [email protected]:Victor-Miron/How_high.git
-
Navigate to the Project Directory:
cd How_high
-
Create and Activate a Virtual Environment:
python -m venv myvenv #python3 -m venv myvenv on linux source myvenv/bin/activate # On Windows, use `myvenv\Scripts\activate`
-
Install the Required Dependencies:
pip install -r requirements.txt
-
Install Jupyter Notebook (if not already installed):
pip install notebook
-
Open the Project in Your IDE:
- Open Visual Studio Code (VS Code) or your preferred IDE.
- Go to
File
>Open Folder
and select the project directory.
-
Run the Main Script:
-
Open the terminal within your IDE (
View
>Terminal
in VS Code). -
Run the main script:
python Create_Greatest.py # python3 Create_Greatest.py on linux
This will execute all necessary steps to process the data and create the database
Greatest.db
. -
To visualize the clean data, use DB Browser for SQLite:
-
Install DB Browser for SQLite:
- You can download it from the official website: DB Browser for SQLite.
-
Open the Database:
- Launch DB Browser for SQLite and open the generated SQLite database file located in the project directory.
-
Explore the Data:
- Use the built-in tools to explore tables, run queries, and visualize the clean data.
- The clean data will be in two tables:
- Constructor Data
- Drivers Data
Visualize the processed data in Tableau by visiting the following link (I advise using Chrome or Firefox for a better experience):
-
Launch Jupyter Notebook from Your IDE:
-
Open the terminal within your IDE (
View
>Terminal
in VS Code). -
Run Jupyter Notebook:
jupyter notebook
-
-
Open the Notebook:
- In the Jupyter Notebook interface, navigate to the project directory and open
Data_handling_demo.ipynb
.
- In the Jupyter Notebook interface, navigate to the project directory and open
-
Run the Notebook:
- Execute the cells in the notebook to run the data handling demo.
For reviewers who want more information about the code, each Python script in this project serves a specific purpose. Below is the order and description of each script:
-
Raw_Database.py: Initializes the database structure required for storing F1 data.
-
Drivers_data.py: Creates and cleans the drivers data table using join.
-
Constructor_Data.py: Creates and cleans the constructor data table using join.
-
Convert_Drivers_data_to_sql.py: Transforms and loads driver data into the SQL database for further analysis.
-
Convert_Constructor_data_to_sql.py: Transforms and loads constructor data into the SQL database for further analysis.
-
Data_handling_demo.ipynb: Demonstrates data manipulation techniques in Python. Also, available as a Jupyter Notebook for interactive exploration.
archive/
: Contains archived datasets and backup files..gitignore/
: Used to specify files and directories that should not be tracked by Git. This is important to keep the repository clean and avoid committing files that are not necessary for others to run the project.
- Victor Miron: Project Lead and Developer
This README.md
file provides a comprehensive overview of the project, including setup instructions, usage guidelines, visualization tools, and a link to visualize the data in Tableau. Feel free to further customize any sections or provide additional details as needed!