Exploratory Data Analisis dan Visualisasi Data Netflix

Eva Rahma Indriyani
5 min readJul 21, 2023

--

Kita seringkali bergantung dengan data dalam pengambilan keputusan, perusahaan seperti Netflix juga sangat bergantung pada analisis data untuk mendapatkan informasi tentang user behaviour serta preferensi pengguna. Analisis Data Eksplorasi (EDA) memainkan peran penting dalam memahami pola dan karakteristik data sebelum terjun ke tahap pemodelan yang kompleks atau proses pengambilan keputusan. Pada artikel ini, kita akan membahas panduan langkah demi langkah tentang cara melakukan EDA dan membuat visualisasi data yang bermakna dengan menggunakan contoh dataset dari Netflix.

Langkah 1: Pengumpulan dan Pemahaman Data

Langkah pertama dalam proses analisis data adalah mengumpulkan data. Sebagai latihan kali ini, kita akan menggunakan dataset yang berisi informasi tentang Acara TV dan film Netflix. Kita perlu memahami struktur dataset, arti setiap kolom, dan potensi nilai yang hilang atau masalah kualitas data

Overview Data

#Load Data
data = pd.read_csv("../input/netflix-shows/netflix_titles.csv")
data.head()
data.info()

Function ini digunakan untuk menampilkan informasi detail tentang dataframe, seperti jumlah baris data, nama kolom, beserta jumlah data dan tipe data nya.

Dataset diatas memiliki 8807 baris dan 12 kolom

  • show_id: ID untuk setiap acara tv dan atau Film
  • type: Kategori tayangan (acara tv atau film)
  • title: Judul tayangan
  • director: Nama sutradara tayangan
  • cast: Nama aktor dan pemeran lainya dalam tayangan
  • country: Nama negara dimana tayangan Netflix bisa ditonton
  • date_added: Tanggal ketika tayangan ditambahkan ke Netflix
  • release_year: Tahun rilis tayangan
  • rating: Rating tayangan di Netflix
  • duration: Durasi tayangan
  • listed_in: Genre tayangan
  • description: Deskripsi singkat mengenai tayangan tersebut

Langkah 2: Pembersihan Data (Data Cleaning)

Data Cleaning merupakan aspek penting dari proses EDA. Langkah ini melibatkan penanganan missing value, menghapus data yang duplikat, dan mengoreksi setiap inkonsistensi dalam data. Pembersihan data memastikan bahwa analisis selanjutnya akurat

Missing Value Handling

# Visualize missing values as a matrix
msno.matrix(data);

Dengan menggunakan matriks ini kita dapat menemukan missing value di dalam dataset. Dari visualisasi di atas kita dapat mengamati bahwa “director”, “pemeran” dan “negara” memiliki banyak missing value yang hilang

  • director: Informasi yang sangat kurang untuk analisis sehingga kolom ini akan dihilangkan
  • cast : ada terlalu banyak value yang berbeda sehingga akan dihilangkan
  • country : Variabel penting sehingga kita perlu memperbaikinya
  • date_added: hanya ada beberapa baris yang kosong sehingga kita drop saja barisnya
  • rating: hanya ada beberapa baris yang kosong sehingga kita drop saja barisnya

Langkah 3: Ringkasan Data dan Statistik Deskriptif

Setelah data dibersihkan, langkah selanjutnya yaitu untuk mendapatkan gambaran umum tentang kumpulan data menggunakan statistik ringkasan dan analisis deskriptif. Menghitung statistik seperti rata-rata, median, deviasi standar, dan kuartil untuk memahami kecenderungan sentral dan penyebaran data.

data.describe(include='object')

Secara default fungsi describe() akan menghasilkan summary statistic descriptive

Langkah 4: Mengeksplorasi Pola Data
EDA melibatkan penemuan pola, tren, dan hubungan di dalam data. Mulailah dengan melakukan analisis univariat, di mana Anda mengeksplorasi variabel individual untuk memahami karakteristik dan distribusinya. Selanjutnya, lakukan analisis bivariat untuk memeriksa hubungan antara dua variabel. Misalnya, kita dapat menganalisis korelasi antara bulan dan tahun dimana acara sering tayang.

month_order = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][::-1]
df = data.groupby('year_added')['month_added'].value_counts().unstack().fillna(0)[month_order].T
plt.figure(figsize=(10, 7), dpi=200)
plt.pcolor(df, cmap='afmhot_r', edgecolors='white', linewidths=2) # heatmap
plt.xticks(np.arange(0.5, len(df.columns), 1), df.columns, fontsize=7, fontfamily='serif')
plt.yticks(np.arange(0.5, len(df.index), 1), df.index, fontsize=7, fontfamily='serif')

plt.title('Netflix Contents Update', fontsize=12, fontfamily='calibri', fontweight='bold', position=(0.20, 1.0+0.02))
cbar = plt.colorbar()

cbar.ax.tick_params(labelsize=8)
cbar.ax.minorticks_on()
plt.show()

Langkah 5: Visualisasi Data
Visualisasi data adalah sebuah alat yang kuat yang memungkinkan otak manusia menafsirkan pola data yang kompleks dengan mudah. Buat berbagai visualisasi seperti bar charts, line plots, scatter plots, heat maps, dan pie charts untuk menyajikan temuan secara efektif. Visualisasi juga dapat membantu mengidentifikasi tren dan anomali dalam data.

Contohnya misal:

Tipe acara di Netflix

plt.figure(figsize=(14, 7))
labels=['TV Show', 'Movie']
plt.pie(data['type'].value_counts().sort_values(),labels=labels,explode=[0.1,0.1],
autopct='%1.2f%%',colors=['lightblue','royalblue'], startangle=90)
plt.title('Type of Netflix Content')
plt.axis('equal')
plt.show()

Rating Film dengan jumlah tertinggi

plt.figure(figsize=(12,10))
sns.set(style="darkgrid")
ax = sns.countplot(x="rating", data=netflix_movies, palette="Set2", order=netflix_movies['rating'].value_counts().index[0:15])

Distribusi durasi film paling banyak

from scipy.stats import norm

plt.figure(figsize=(15,7))
sns.distplot(netflix_movies['duration'].str.extract('(\d+)'),fit=norm,kde=False, color=['red'])
plt.title('Distplot with Normal distribution for Movies',fontweight="bold")
plt.show()

10 Negara teratas yang memproduksi konten paling banyak

from collections import Counter
country_data = data['country']
country_count = pd.Series(dict(Counter(','.join(country_data).replace(' ,',',').replace(
', ',',').split(',')))).sort_values(ascending=False)
top10country = country_count.head(10)

plt.figure(figsize=(15,5))
sns.barplot(x= top10country.index, y=top10country, palette="pastel")
plt.xticks(rotation=50)
plt.title('Top 10 countries with most contents', fontsize=15, fontweight='bold')
plt.show()

Wordcloud Genre Film

from wordcloud import WordCloud, STOPWORDS

text = ' '.join(netflix_movies['listed_in'])

plt.rcParams['figure.figsize'] = (12,12)
wordcloud = WordCloud(background_color = 'white', width = 1200, height = 1200, max_words = 121).generate(text)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()

EDA dan Visualisasi Data merupakan langkah penting dalam memahami dan mendapatkan informasi serta insight dari sebuah data. Dengan mengikuti proses langkah demi langkah yang diuraikan dalam artikel ini, maka dapat secara efektif membersihkan data, menemukan pola yang, dan menyajikan temuan menggunakan visualisasi yang menarik.

--

--

Eva Rahma Indriyani
Eva Rahma Indriyani

Written by Eva Rahma Indriyani

Happiness is a vague word, so i hope you enjoy your every single day

No responses yet