In this project I initially analyzed Star Wars movie using a separate dataset, unfortunately I lost the original file, however the results and visualizations I had gotten are still available on my LinkedIn post :
https://www.linkedin.com/posts/ethanpds_in-this-small-project-i-explored-the-global-activity-7324659638837067777-4Bsq?utm_source=share&utm_medium=member_desktop&rcm=ACoAAE4g_bYBwsz_B0R2x0tgc1aGQRZB0jU235M
I filtered the dataset for Star Wars titles and recreated key visualizations, to have a clear comparison of box office performance across the franchise. This project demonstrates my skills in data cleaning, filtering and effective visualization with pandas and matplotlib .
Goal of this analysis
<aside>
🗨️
In celebration of May the 4th earlier this year also known as Star Wars Day, I conducted on analysis of global box office performance amongst the Star Wars film franchise. As a life long Star Wars fan I intend to combine my personal passion with data management and story telling.
The goal of this analysis is to
- Investigate whether Star Wars performs better in the U.S. (domestically) or in the international market, we re comparing the two by comparing adjusted and unadjusted gross revenues.
- Ranking Star Wars movies in terms of global box office success to arrange movies in ascending order in terms of box office success.
- Use clear engaging horizontal bar charts to visualize revenue comparisons across films and regions, ensuring that it can be visualized by both coders and non-coders.
</aside>
Deliverables
<aside>
🗨️
Deliverables:
- Sharing Format:
- Comprehensive report with key findings and recommendations did on Notions
- Google collab with functional codes and visualized findings.
🔍 Analysis Components
- A Python-based Google Colab notebook exploring the relationship amongst the Star Wars franchise.
- Bar chart visualizations to clearly visualize the box office earnings amongst the Star Wars movies to be able to clearly understand the differences in international gross and domestic gross.
🛠️ Tools Used
- pandas for data cleaning, filtering, and exploratory analysis
- matplotlib to plot and visualize the bar chart
- Google Colab for an efficient workflow
📤 Output & Sharing Format
- A shareable Google Colab notebook containing code, charts, and insights
- Report done using Notion
</aside>
Questions to be answered
<aside>
🗨️
🔹 1. Domestic vs. International Popularity
- Do Star Wars films earn more revenue domestically (U.S.) or internationally?
- Does inflation-adjusted data change the perceived popularity by region?
🔹 2. Highest-Grossing Star Wars Film
- Which Star Wars movie ranks as the top earner based on unadjusted gross?
- What role does release year play in determining total box office success?
🔹 3. Visualizing the Results
- What is the most effective way to compare gross revenues across films (e.g., horizontal bar charts)?
- Do visual trends reveal shifts in the franchise’s popularity over time?
</aside>
What data do I have?
<aside>
🗨️
Star Wars Box Office Dataset
-
Source:
Top Movies 2020 dataset published via GitHub, originally compiled from historical box office records.
-
Data Description:
The dataset includes a list of major films with the following key attributes:
Title – the name of the film
Gross – unadjusted box office earnings
Gross (Adjusted) – earnings adjusted for inflation
Year – release year of the film
-
Limitations with the Data:
- Not every Star Wars film is included — the dataset may exclude titles released after 2020 or less prominent entries.
- Does not distinguish between domestic and international revenue — values are total gross only.
- Adjusted gross calculations may vary depending on methodology (e.g., inflation index used).
- No breakdown by region, ticket sales, or runtime — analysis is limited to revenue totals and titles only.
</aside>
Data Preparation & Filtering
import pandas as pd
csvFile = '<https://raw.githubusercontent.com/csbfx/advpy122-data/master/top_movies_2020.csv>'
movies = pd.read_csv(csvFile)
# Filter for Star Wars movies only
star_wars_df = movies[movies['Title'].str.contains('Star Wars', case=False, na=False)]
print(star_wars_df)