import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv("data/youtube_videos.csv")
bins = [0, 300, 1800, float("inf")]
labels = ["short", "medium", "long"]
df["duration_bin"] = pd.cut(
df["duration_seconds"],
bins=bins,
labels=labels
)
order = ["short", "medium", "long"]
colors = ["#6a9fb5", "#e8925a", "#7a7a7a"]
fig, axes = plt.subplots(2, 1, figsize=(4, 5))
sns.histplot(df["duration_seconds"],
ax=axes[0],
color="#e8925a", bins=30)
axes[0].set_title("Before: duration_seconds")
axes[0].set_xlabel("seconds")
sns.countplot(data=df,
x="duration_bin",
order=order,
palette=colors,
ax=axes[1])
axes[1].set_title("After: duration_bin")
axes[1].set_xlabel("duration bin")
axes[1].set_ylabel("count")
sns.despine()
plt.tight_layout()
plt.show()