47 KiB
47 KiB
Skrypt do ściagnięcia zbiory danych
!pip install --user kaggle
!pip install --user pandas
!pip install --user numpy
!pip install --user seaborn
!pip install -U scikit-learn
!echo "Downloading dataset from Kaggle..."
!kaggle datasets download -d harshitshankhdhar/imdb-dataset-of-top-1000-movies-and-tv-shows
!echo "Done."
!echo "Unzipping archive"
!files=$(unzip imdb-dataset-of-top-1000-movies-and-tv-shows.zip | tail -n +2 | cut -d ' ' -f 4)
!echo "Done."
import pandas as pd
import numpy as np
data=pd.read_csv('imdb_top_1000.csv')
# data
#Wielkosc zbioru
!wc -l imdb_top_1000.csv
1001 imdb_top_1000.csv
Usuwanie kolumn
- Poster_Link: kolumna zawierająca linki do plakatów promujących film
- Overview: kolumna zawierająca recenzje poszczególnych filmów
data.drop(columns=["Poster_Link"], inplace=True)
data.drop(columns=["Overview"], inplace=True)
# data
# Lowercase na polach tekstowych
data["Series_Title"] = data["Series_Title"].str.lower()
data["Genre"] = data["Genre"].str.lower()
data["Director"] = data["Director"].str.lower()
data["Star1"] = data["Star1"].str.lower()
data["Star2"] = data["Star2"].str.lower()
data["Star3"] = data["Star3"].str.lower()
data["Star4"] = data["Star4"].str.lower()
# Usunięcie Nan i string to int
data = data.replace(np.nan, '', regex=True)
data["Gross"] = data["Gross"].str.replace(',', '')
data["Gross"] = pd.to_numeric(data["Gross"], errors='coerce')
data = data.dropna()
data.describe(include='all')
Series_Title | Released_Year | Certificate | Runtime | Genre | IMDB_Rating | Meta_score | Director | Star1 | Star2 | Star3 | Star4 | No_of_Votes | Gross | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 831 | 831 | 831 | 831 | 831 | 831.000000 | 831 | 831 | 831 | 831 | 831 | 831 | 8.310000e+02 | 8.310000e+02 |
unique | 831 | 95 | 14 | 133 | 182 | NaN | 64 | 472 | 556 | 704 | 737 | 782 | NaN | NaN |
top | a streetcar named desire | 2014 | U | 101 min | drama | NaN | steven spielberg | tom hanks | emma watson | rupert grint | michael caine | NaN | NaN | |
freq | 1 | 31 | 200 | 21 | 75 | NaN | 81 | 13 | 12 | 7 | 5 | 4 | NaN | NaN |
mean | NaN | NaN | NaN | NaN | NaN | 7.946931 | NaN | NaN | NaN | NaN | NaN | NaN | 3.152499e+05 | 6.803475e+07 |
std | NaN | NaN | NaN | NaN | NaN | 0.283204 | NaN | NaN | NaN | NaN | NaN | NaN | 3.436443e+05 | 1.097500e+08 |
min | NaN | NaN | NaN | NaN | NaN | 7.600000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.508800e+04 | 1.305000e+03 |
25% | NaN | NaN | NaN | NaN | NaN | 7.700000 | NaN | NaN | NaN | NaN | NaN | NaN | 7.143000e+04 | 3.253559e+06 |
50% | NaN | NaN | NaN | NaN | NaN | 7.900000 | NaN | NaN | NaN | NaN | NaN | NaN | 1.867340e+05 | 2.353089e+07 |
75% | NaN | NaN | NaN | NaN | NaN | 8.100000 | NaN | NaN | NaN | NaN | NaN | NaN | 4.457210e+05 | 8.075089e+07 |
max | NaN | NaN | NaN | NaN | NaN | 9.300000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.343110e+06 | 9.366622e+08 |
data.median()
IMDB_Rating 7.9 No_of_Votes 186734.0 Gross 23530892.0 dtype: float64
data.shape
(831, 14)
from sklearn.model_selection import train_test_split
import sklearn
data_train, data_test = train_test_split(data, test_size=230, random_state=1)
data_test, data_dev = train_test_split(data_test, test_size=115, random_state=1)
print(data_train.shape)
print(data_test.shape)
print(data_dev.shape)
(601, 14) (115, 14) (115, 14)
data_test.size/data_train.size
0.1913477537437604
data_train.describe(include="all")
Series_Title | Released_Year | Certificate | Runtime | Genre | IMDB_Rating | Meta_score | Director | Star1 | Star2 | Star3 | Star4 | No_of_Votes | Gross | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 601 | 601 | 601 | 601 | 601 | 601.000000 | 601 | 601 | 601 | 601 | 601 | 601 | 6.010000e+02 | 6.010000e+02 |
unique | 601 | 90 | 13 | 121 | 162 | NaN | 59 | 378 | 438 | 530 | 556 | 577 | NaN | NaN |
top | what ever happened to baby jane? | 2014 | U | 101 min | drama | NaN | martin scorsese | clint eastwood | emma watson | joe pesci | michael caine | NaN | NaN | |
freq | 1 | 22 | 143 | 17 | 53 | NaN | 53 | 10 | 10 | 5 | 4 | 4 | NaN | NaN |
mean | NaN | NaN | NaN | NaN | NaN | 7.947920 | NaN | NaN | NaN | NaN | NaN | NaN | 3.174649e+05 | 6.775699e+07 |
std | NaN | NaN | NaN | NaN | NaN | 0.280238 | NaN | NaN | NaN | NaN | NaN | NaN | 3.407094e+05 | 1.095511e+08 |
min | NaN | NaN | NaN | NaN | NaN | 7.600000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.508800e+04 | 1.305000e+03 |
25% | NaN | NaN | NaN | NaN | NaN | 7.700000 | NaN | NaN | NaN | NaN | NaN | NaN | 6.846300e+04 | 3.151130e+06 |
50% | NaN | NaN | NaN | NaN | NaN | 7.900000 | NaN | NaN | NaN | NaN | NaN | NaN | 1.897160e+05 | 2.365000e+07 |
75% | NaN | NaN | NaN | NaN | NaN | 8.100000 | NaN | NaN | NaN | NaN | NaN | NaN | 4.622520e+05 | 7.891296e+07 |
max | NaN | NaN | NaN | NaN | NaN | 9.200000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.303232e+06 | 8.583730e+08 |
data_test.describe(include="all")
Series_Title | Released_Year | Certificate | Runtime | Genre | IMDB_Rating | Meta_score | Director | Star1 | Star2 | Star3 | Star4 | No_of_Votes | Gross | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 115 | 115 | 115 | 115 | 115 | 115.000000 | 115 | 115 | 115 | 115 | 115 | 115 | 1.150000e+02 | 1.150000e+02 |
unique | 115 | 57 | 10 | 64 | 59 | NaN | 44 | 105 | 100 | 113 | 109 | 114 | NaN | NaN |
top | queen | 2013 | U | 102 min | drama | NaN | frank darabont | al pacino | emma watson | carrie fisher | lucy liu | NaN | NaN | |
freq | 1 | 7 | 30 | 7 | 14 | NaN | 16 | 2 | 4 | 2 | 2 | 2 | NaN | NaN |
mean | NaN | NaN | NaN | NaN | NaN | 7.947826 | NaN | NaN | NaN | NaN | NaN | NaN | 3.140691e+05 | 6.622925e+07 |
std | NaN | NaN | NaN | NaN | NaN | 0.313259 | NaN | NaN | NaN | NaN | NaN | NaN | 3.647432e+05 | 9.085320e+07 |
min | NaN | NaN | NaN | NaN | NaN | 7.600000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.669700e+04 | 1.095000e+04 |
25% | NaN | NaN | NaN | NaN | NaN | 7.700000 | NaN | NaN | NaN | NaN | NaN | NaN | 7.206000e+04 | 4.232562e+06 |
50% | NaN | NaN | NaN | NaN | NaN | 7.900000 | NaN | NaN | NaN | NaN | NaN | NaN | 1.654650e+05 | 2.602096e+07 |
75% | NaN | NaN | NaN | NaN | NaN | 8.100000 | NaN | NaN | NaN | NaN | NaN | NaN | 4.268040e+05 | 7.556908e+07 |
max | NaN | NaN | NaN | NaN | NaN | 9.300000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.343110e+06 | 3.808433e+08 |
data_dev.describe(include="all")
Series_Title | Released_Year | Certificate | Runtime | Genre | IMDB_Rating | Meta_score | Director | Star1 | Star2 | Star3 | Star4 | No_of_Votes | Gross | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 115 | 115 | 115 | 115 | 115 | 115.000000 | 115 | 115 | 115 | 115 | 115 | 115 | 1.150000e+02 | 1.150000e+02 |
unique | 115 | 56 | 8 | 72 | 71 | NaN | 42 | 101 | 104 | 115 | 115 | 112 | NaN | NaN |
top | mr. smith goes to washington | 2004 | UA | 120 min | drama | NaN | billy wilder | johnny depp | charlize theron | joel edgerton | kevin bacon | NaN | NaN | |
freq | 1 | 6 | 28 | 5 | 8 | NaN | 12 | 3 | 3 | 1 | 1 | 2 | NaN | NaN |
mean | NaN | NaN | NaN | NaN | NaN | 7.940870 | NaN | NaN | NaN | NaN | NaN | NaN | 3.048547e+05 | 7.129188e+07 |
std | NaN | NaN | NaN | NaN | NaN | 0.269143 | NaN | NaN | NaN | NaN | NaN | NaN | 3.400764e+05 | 1.275242e+08 |
min | NaN | NaN | NaN | NaN | NaN | 7.600000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.522900e+04 | 3.600000e+03 |
25% | NaN | NaN | NaN | NaN | NaN | 7.700000 | NaN | NaN | NaN | NaN | NaN | NaN | 8.123350e+04 | 3.425538e+06 |
50% | NaN | NaN | NaN | NaN | NaN | 7.900000 | NaN | NaN | NaN | NaN | NaN | NaN | 1.820090e+05 | 2.018666e+07 |
75% | NaN | NaN | NaN | NaN | NaN | 8.100000 | NaN | NaN | NaN | NaN | NaN | NaN | 4.148195e+05 | 8.406197e+07 |
max | NaN | NaN | NaN | NaN | NaN | 8.800000 | NaN | NaN | NaN | NaN | NaN | NaN | 2.067042e+06 | 9.366622e+08 |
data_test.to_csv("data_test.csv", encoding="utf-8", index=False)
data_dev.to_csv("data_dev.csv", encoding="utf-8", index=False)
data_train.to_csv("data_train.csv", encoding="utf-8", index=False)