Skip to content
Project: Data-Driven Product Management: Conducting a Market Analysis
You are a product manager for a fitness studio and are interested in understanding the current demand for digital fitness classes. You plan to conduct a market analysis in Python to gauge demand and identify potential areas for growth of digital products and services.
The Data
You are provided with a number of CSV files in the "Files/data" folder, which offer international and national-level data on Google Trends keyword searches related to fitness and related products.
workout.csv
| Column | Description |
|---|---|
'month' | Month when the data was measured. |
'workout_worldwide' | Index representing the popularity of the keyword 'workout', on a scale of 0 to 100. |
three_keywords.csv
| Column | Description |
|---|---|
'month' | Month when the data was measured. |
'home_workout_worldwide' | Index representing the popularity of the keyword 'home workout', on a scale of 0 to 100. |
'gym_workout_worldwide' | Index representing the popularity of the keyword 'gym workout', on a scale of 0 to 100. |
'home_gym_worldwide' | Index representing the popularity of the keyword 'home gym', on a scale of 0 to 100. |
workout_geo.csv
| Column | Description |
|---|---|
'country' | Country where the data was measured. |
'workout_2018_2023' | Index representing the popularity of the keyword 'workout' during the 5 year period. |
three_keywords_geo.csv
| Column | Description |
|---|---|
'country' | Country where the data was measured. |
'home_workout_2018_2023' | Index representing the popularity of the keyword 'home workout' during the 5 year period. |
'gym_workout_2018_2023' | Index representing the popularity of the keyword 'gym workout' during the 5 year period. |
'home_gym_2018_2023' | Index representing the popularity of the keyword 'home gym' during the 5 year period. |
# Import the necessary libraries
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns#read csv
workout = pd.read_csv("data/workout.csv")
three_keywords = pd.read_csv("data/three_keywords.csv")
workout_geo = pd.read_csv("data/workout_geo.csv")
three_keywords_geo = pd.read_csv("data/three_keywords_geo.csv")workout.info()workout["month"] = pd.to_datetime(workout["month"])
peak_month = workout.loc[workout["workout_worldwide"].idxmax(), "month"]
year_str = str(peak_month.year)
three_keywords["month"] = pd.to_datetime(three_keywords["month"])
# During COVID (2020–2021)
covid_period = three_keywords[
(three_keywords["month"].dt.year >= 2020) &
(three_keywords["month"].dt.year <= 2021)
]
peak_covid = covid_period[
["home_workout_worldwide", "gym_workout_worldwide", "home_gym_worldwide"]
].mean().idxmax()
# Current (most recent month)
latest = three_keywords.iloc[-1]
# the values are numeric before using idxmax
current = latest[
["home_workout_worldwide", "gym_workout_worldwide", "home_gym_worldwide"]
].astype(float).idxmax()top_country = (
workout_geo[
workout_geo["country"].isin(["United States", "Australia", "Japan"])
]
.sort_values("workout_2018_2023", ascending=False)
.iloc[0]["country"]
)
# the actual column names and use the correct one
print(three_keywords_geo.columns) # To inspect the actual column names
home_workout_geo = (
three_keywords_geo[
three_keywords_geo["Country"].isin(["Philippines", "Malaysia"])
]
.sort_values("home_workout_2018_2023", ascending=False)
.iloc[0]["Country"]
)