Netflix! What started in 1997 as a DVD rental service has since exploded into one of the largest entertainment and media companies.
Given the large number of movies and series available on the platform, it is a perfect opportunity to flex your exploratory data analysis skills and dive into the entertainment industry.
You work for a production company that specializes in nostalgic styles. You want to do some research on movies released in the 1990's. You'll delve into Netflix data and perform exploratory data analysis to better understand this awesome movie decade!
You have been supplied with the dataset netflix_data.csv, along with the following table detailing the column names and descriptions. Feel free to experiment further after submitting!
The data
netflix_data.csv
| Column | Description |
|---|---|
show_id | The ID of the show |
type | Type of show |
title | Title of the show |
director | Director of the show |
cast | Cast of the show |
country | Country of origin |
date_added | Date added to Netflix |
release_year | Year of Netflix release |
duration | Duration of the show in minutes |
description | Description of the show |
genre | Show genre |
# Importing pandas and matplotlib
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option('display.max_rows', None)
# Read in the Netflix CSV as a DataFrame
netflix_df = pd.read_csv("netflix_data.csv")
# Visual inspection
netflix_df.head(5)
print(f"The dataset shape: {netflix_df.shape}")
netflix_df.describe().T
import pandas as pd
import matplotlib.pyplot as plt
# Read in the Netflix CSV as a DataFrame
netflix_df = pd.read_csv("netflix_data.csv")# Filter the DataFrame for movies
netflix_subset = netflix_df[netflix_df["type"] == "Movie"]
# Further filter for movies released in the 1990s
subset = netflix_subset[(netflix_subset["release_year"] >= 1990)]
movies_1990s = subset[(subset["release_year"] < 2000)]
# Initialize the duration and short movie count
plt.hist(movies_1990s["duration"])
plt.title('Distribution of Movie Durations in the 1990s')
plt.xlabel('Duration (minutes)')
plt.ylabel('Number of Movies')
plt.show()
duration = 100
action_movies_1990s = movies_1990s[movies_1990s["genre"] == "Action"]
short_movie_count = 0
# Iterate over the movies in the 1990s
for label, row in action_movies_1990s.iterrows():
if row["duration"] < 90:
short_movie_count += 1
else:
short_movie_count = short_movie_count
# Print the count of short movies
print(short_movie_count)import matplotlib.pyplot as plt
import seaborn as sns
# Bar plot of genres
netflix_90s_movies=movies_1990s
plt.figure(figsize=(10, 6))
sns.countplot(data=netflix_90s_movies, x='genre', order=netflix_90s_movies['genre'].value_counts().index)
plt.title('Distribution of Genres in 1990s Movies')
plt.xticks(rotation=45)
plt.show()
# Histogram of movie durations
plt.figure(figsize=(8, 6))
netflix_90s_movies['duration'].plot(kind='hist', bins=20, color='skyblue')
plt.title('Distribution of Movie Durations (1990s)')
plt.xlabel('Duration (minutes)')
plt.show()
What were the most common genres in the 1990s? What was the average duration of movies in the 1990s? Which ratings (e.g., PG, R) were most prevalent for 1990s movies? Are there patterns in the descriptions (e.g., common words/themes)? You could use techniques like word clouds to analyze the description column:
from wordcloud import WordCloud
# Combine all descriptions
text = ' '.join(description for description in netflix_90s_movies['description'].dropna())
# Generate the word cloud
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
# Display the word cloud
plt.figure(figsize=(10, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Common Words in Movie Descriptions (1990s)')
plt.show()