<jupyter_start><jupyter_text>IMDB  introdução---![imdb](data:image/png;base64,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)---Os dados analisados nesse notebook foram extraidos da minha conta pessoal do [IMDB](https://tse3.mm.bing.net/th?id=OIP.NPrBTjZ5scqqgZ4ZBmkWnwHaHa&pid=Api).  importando bibliotecas e lendo os dados<jupyter_code>import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
imdb = pd.read_csv(r'C:\Users\mateu\OneDrive\Documentos\Programação\dados\IMDB_Mateus\ratings.csv', encoding='ISO-8859-1')
#covid_BR_19 = covid_BR_19.drop(columns=['region']).copy()
imdb.head()<jupyter_output><empty_output><jupyter_text>Resumo e preparação dos dados<jupyter_code>print(imdb.shape)
print(imdb.columns)
print(imdb.columns.size)<jupyter_output>(338, 13)
Index(['Const', 'Your Rating', 'Date Rated', 'Title', 'URL', 'Title Type',
       'IMDb Rating', 'Runtime (mins)', 'Year', 'Genres', 'Num Votes',
       'Release Date', 'Directors'],
      dtype='object')
13<jupyter_text>O dataframe análisado tem 13 colunas e 338 filmes ou series registrados| n° | Coluna | Descrição | Status || -- | :------------: | :------------------------------------------------------------------: | :-: || 1 | Const | xxxxx | ❌ || 2 | Your Rating | A nota que eu dei para o respectivo filme | ✔️ || 3 | Date Rated | Data que avaliei. Pode ser util.. | ❓ || 4 |Title | Titulo do filme | ✔️ || 5 | URL | Url do correspondente ao filme citado no imdb, Pode ser excluida para a analise | ❌ || 6 | Title Type | Descreve se é um filme ou uma série | ✔️ || 7 | Runtimes | Tempo do filme em minutos | ✔️ || 8 | Year | Ano de lançamento do Filme. imformação tmb aparece em 'release date' | ✔️ || 9 | Genres | generos associado ao filme | ✔️ || 10 | Num votes | Numero de votos do respectivo filme no site | ✔️ || 11 | release Date | Dia do lançamento | ✔️ || 12 | Directors | Diretor(es) do filme | ✔️ || 13 | IMDB Rating | media do filme | ✔️ |<jupyter_code>#imdb = imdb.replace(['Date Rated', 'Title Type', 'Num Votes', 'Release Date'], ['data_nota', 'Tipo', 'Num_votes', 'Data_lancamento']) #AS colunas foram renomeadas
imdb = imdb.rename(columns={'Your Rating':'Your_Rating','Date Rated': 'data_nota', 'Runtime (mins)':'Tempo', 'Title Type': 'Tipo', 'IMDb Rating':'IMDb_Rating', 'Num Votes':'Num_votes', 'Release Date':'Data_lancamento'}) #AS colunas foram renomeadas
imdb = imdb.loc[imdb['Tipo'] == 'movie']
imdb = imdb.drop(columns=['Const', 'URL', 'Tipo'])   # As colunas foram excluidas
imdb.head(7)<jupyter_output><empty_output><jupyter_text>Pronto, agora todos os dados do dataframe 'imdb' são filmes  1ª análiseA primeira será feita para responder algumas perguntas simples, como:1. Quantos filmes no total eu avaliei?2. Quais os filmes em que eu dei rating maximo(10)?3. Quais os filmes com os 5 maiores ratings do imdb que eu assiti?4. Quais os filmes mais populares (mais ratings) que eu assiti?5. Qual o filme mais antigo e mais recente que eu assiti?6. Qual o genero que mais assiti?7. Quantos diretores diferentes dirigiram os 'N' filmes que eu vi? Qual o diretor mais visto?  1 - Numero de filmesJá que cada linha representa um filme, basta verificar quantas linhas possui o dataframe<jupyter_code>print(len(imdb))
print('-='*15)
print(imdb.shape)
print('-='*15)
print(imdb.count())<jupyter_output>296
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(296, 10)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Your_Rating        296
data_nota          296
Title              296
IMDb_Rating        295
Tempo              296
Year               296
Genres             296
Num_votes          295
Data_lancamento    295
Directors          296
dtype: int64<jupyter_text>Temos então a resposta a primeir pergunta: Foram avaliados um total de **296** filmes  2 - Filmes que eu dei 10 estrelasSerá usado o metodo loc para determinar os filmes<jupyter_code>len(imdb.loc[(imdb.Your_Rating == 10)])<jupyter_output><empty_output><jupyter_text>Foram 23 filmes avaliados com nota máxima<jupyter_code>#print(imdb.loc[(imdb.Your_Rating == 10)])
filmes_10 = []
for t in imdb.loc[(imdb.Your_Rating == 10)]['Title']:
    filmes_10.append(t)

print(filmes_10)
print(len(filmes_10))
#imdb.loc[(imdb.Your_Rating == 10)]['Title']<jupyter_output>["Schindler's List", 'Forrest Gump', 'Pulp Fiction', 'Se7en', 'Tarzan', 'Fight Club', 'Mad Max: Fury Road', 'Memento', 'About Time', 'Star Wars: Episode VIII - The Last Jedi', 'Arrival', 'Whiplash', 'Cidade de Deus', 'The Hateful Eight', 'La La Land', "Singin' in the Rain", '12 Angry Men', 'The Edge of Democracy', '2001: A Space Odyssey', 'Bingo: O Rei das Manhãs', 'Gisaengchung', 'The Godfather', '1917']
23<jupyter_text>3 - 5 maiores medias do Imdbserá usado o metod sort_values<jupyter_code>imdb.sort_values(by=['IMDb_Rating']).head()<jupyter_output><empty_output><jupyter_text>Acima podemos ver os 5 piores<jupyter_code>imdb.sort_values(by=['IMDb_Rating'], ascending=False).head()<jupyter_output><empty_output><jupyter_text>Agora, podemos ver os 5 melhores: - Um sonho de liberdade- O Poderoso Chefão- Cavaleiro da trevas- poderoso chefão 2- 12 homens e uma sentença Mas não termina ai. Quando se analisa os proximos da lista, podemos ver que eles tem a mesma nota, e qu o filme 12 homens e uma sentença aparece ali por conta da ordem alfabética.Por isso, o segundo critério adotado será a popularidade.<jupyter_code>imdb.sort_values(by=['IMDb_Rating', 'Num_votes'], ascending=False).head(10)<jupyter_output><empty_output><jupyter_text>4 - Mais popularesDa mesma forma que no item anterior podemos descobrir os filmes mais populares<jupyter_code>imdb.sort_values(by=['Num_votes'], ascending=False).head(10)
imdb.sort_values(by=['Num_votes']).head()<jupyter_output><empty_output><jupyter_text>5 Mais antigo e mais recente<jupyter_code>imdb.sort_values(by=['Data_lancamento'], ascending=True).head()
imdb.sort_values(by=['Data_lancamento'], ascending=False).head()<jupyter_output><empty_output><jupyter_text>Vemos dois filmes do ano de 1940: O grande ditador de <NAME> e <NAME>Os filmes mais recentes foram lançados em 2019  Desafiocomo desafio separarei os filmes do mes de fevereiro(02) e de anos pares hahaha<jupyter_code>print(imdb.Data_lancamento.dtypes)
imdb['Data_lancamento'] = pd.to_datetime(imdb.Data_lancamento)
print(imdb.Data_lancamento.dtypes)
imdb.loc[imdb.Data_lancamento.dt.month == 2]<jupyter_output><empty_output><jupyter_text>Acima podemos ver os filmes q foram lançado no mês de fevereiro<jupyter_code>imdb.loc[(imdb.Data_lancamento.dt.month == 2) & ((imdb.Data_lancamento.dt.year % 2)==0)]<jupyter_output><empty_output><jupyter_text>6 Genero mais assitido<jupyter_code>teste = imdb['Genres'].str.cat(sep=', ').split(', ')#.unique()#.sort()

len(teste)
len(list(set(teste)))

Generos = sorted(list(set(teste)))
Generos

n = []
for Genero in Generos:
    n.append(teste.count(Genero))
n
fig, ax = plt.subplots(1,1,figsize=(20, 8))
sns.barplot(x=Generos, y=n, palette='Paired')   #plot do grafico
sns.set_context("notebook")
sns.set(rc={"font.size":10,"axes.labelsize":17})
ax.set_xticklabels(Generos)                                                    #Definindo os valores do eixo x
ax.set_xticks(np.arange(len(Generos)))                                         #
ax.set_ylabel('Quantidade de Filmes')                                        #nome do eixo Y  
plt.xticks(rotation=90)                                                            #rotação do valores do eixo x    4
ax.set_title('Gêneros assistidos', fontsize=20)         #titulo do grafico
ax.grid(True)


plt.show()<jupyter_output><empty_output><jupyter_text>Se verifica pelo gráfico que o Genero mais assitido foi o drama  Tambem se destaca com mais de 50, os generos de ação, Aventura, Biografias, Comédia, Sci-Fi e Thriller  O genero menos visto foi o Noir - apenas 1.  7 Diretores<jupyter_code>d = imdb['Directors'].str.cat(sep=', ').split(', ')

diretores = sorted(list(set(d)))
print(diretores)
print(len(diretores))
print('-='*10)

diret = []
n1 = []
for diretor in diretores:
    if d.count(diretor)>3:
        diret.append(diretor)
        n1.append(d.count(diretor))
print(n1)
print(diret)
fig, ax = plt.subplots(1,1,figsize=(20, 8))
sns.barplot(x=diret, y=n1, palette='Paired')   #plot do grafico
sns.set_context("notebook")
sns.set(rc={"font.size":10,"axes.labelsize":17})
ax.set_xticklabels(diret)                                                    #Definindo os valores do eixo x
ax.set_xticks(np.arange(len(diret)))                                         #
ax.set_ylabel('Quantidade de filmes')                                        #nome do eixo Y 
plt.xticks(rotation=0)                                                            #rotação do valores do eixo x    4
ax.set_title('Diretores assitidos mais de 3 vezes', fontsize=20)         #titulo do grafico
ax.grid(True)


plt.show()<jupyter_output><empty_output><jupyter_text>Foram 256 diretores diferentes nos 296 filmes assitidos.  E através dos graficos podemos concluir que os diretores mais assitidos foram <NAME> e <NAME> com 9 filmes cada.  me lembro claramente quais são os 9 filmes do Tarantino, mas não lembro dos filmes do scorsese. Então decidi separar quais são esses filmes.  Issi fica mais fácil porque todos os filmes foram dirigidos somente por ele.<jupyter_code>imdb.loc[imdb.Directors=='<NAME>']
imdb.loc[imdb.Directors.str.contains(",", na=False)].head()
#imdb.Directors.str.contains(",")<jupyter_output><empty_output><jupyter_text>Desta forma podemos ver todos os filmes com mais de um diretor.E com o mesmo metodo podemos ver os filmes de um diretor em especifico<jupyter_code>imdb.loc[imdb.Directors.str.contains("Boyle", na=False)].head()<jupyter_output><empty_output><jupyter_text>2ª análiseA primeira será feita para responder algumas perguntas simples, como:  1.  ---  Extras StylingAqui vão ser feitos alguns testes com o styling<jupyter_code>Styling01 = imdb.sort_values(by=['IMDb_Rating']).head().style.hide_index().hide_columns(['Tempo', 'Genres','Data_lancamento']) 
Styling01
Styling01.highlight_min(subset='IMDb_Rating', color='Red')
Styling01.background_gradient(cmap='Wistia')
imdb.head(10).style.set_properties(**{'background-color' : 'yellow',
                            'color' : 'black',
                            'border-color' : 'black'})
imdb.head(10).style.set_table_styles([{'selector' : 'tr:hover', 'props' : [('background-color', 'black'),('color', 'yellow')]}])
imdb.head(10).style.set_table_styles([{'selector' : 'tr:hover', 'props' : [('background-color', 'yellow'),('color', 'black')]}])
imdb.head(10).style.set_table_styles([{'selector' : 'tr:hover', 
                                  'props' : [('background-color', 'black'),('color', 'white')]}]
                               ).set_properties(**{'background-color' : 'yellow',
                            'color' : 'black',
                            'border-color' : 'black'})<jupyter_output><empty_output><jupyter_text>---  Teste<jupyter_code>imdb.loc[imdb.Title.str.contains(":", na=False)].head()
#imdb.rename(columns={'Date Rated': 'data_nota', 'Title Type': 'Tipo', 'Num Votes':'Num_votes', 'Release Date':'Data_lancamento'}) #AS colunas foram renomeadas<jupyter_output><empty_output><jupyter_text>fazer- não consegui alterar o nome na coluna-   Aleatório<jupyter_code>import random

moeda = []
for x in range(100):
    cara=0
    coroa=0
    for x in range(10000):
        if random.randint(1,2)==1:
            cara +=1
        else:
            coroa+=1
    moeda.append(cara)
        
print(moeda)
fig, ax = plt.subplots(1,1,figsize=(25, 8))
sns.lineplot(x=range(100), y=moeda, palette='Paired')   #plot do grafico
sns.set_context("notebook")
sns.set(rc={"font.size":10,"axes.labelsize":17})
#ax.set_xticklabels(diret)                                                    #Definindo os valores do eixo x
ax.set_xticks(np.arange(len(moeda)))                                         #
ax.set_ylabel('a')                                        #nome do eixo Y 
plt.xticks(rotation=90)                                                            #rotação do valores do eixo x    4
ax.set_title('s', fontsize=20)         #titulo do grafico
ax.grid(True)


plt.show()<jupyter_output><empty_output>
StarcoderdataJupyterStructuredCleanDedup