31
loading...
This website collects cookies to deliver better user experience
# Importando a biblioteca Pandas
import pandas as pd
Merge
# Mesclando o DataFrame 'filme_classificacao' com os 'usuarios'
filme_classificacao = pd.merge(filmes, classificacao)
df = pd.merge(filme_classificacao, usuarios)
df
avaliados = df['titulo'].value_counts().sort_values(ascending=False)[:20].to_frame('avaliados') \
.style.background_gradient(cmap='Blues')
avaliados
quantidade = df.groupby('titulo').size().to_frame('tamanho')
quantidade
quantidade = quantidade[quantidade['tamanho'] > 100]
quantidade
media = df.groupby('titulo')['classificacao'].mean().to_frame('media').round(2)
media = pd.merge(
left=quantidade,
right=media,
left_index=True,
right_index=True
)
media
bem_avaliados = media[['tamanho', 'media']].sort_values(by='media', ascending=False)[:10] \
.style.background_gradient(subset=['media'], cmap='YlOrBr')
bem_avaliados
usuarios.idade.plot.hist(bins=30)
plt.title('Distribuição das idades dos usuários')
plt.xlabel('Idades')
plt.ylabel('Quantidades de usuários')
plt.show()
frequencia = df.idade.value_counts().to_frame('frequencia')
frequencia = frequencia.reset_index().rename(columns={'index':'idade'}).sort_values(by='idade')
frequencia.index = range(len(frequencia))
frequencia[:28].style.background_gradient(
subset='frequencia',
cmap='Greys'
)
labels = ['7-16', '17-26', '27-36', '37-46', '47-56', '48-57', '58-67', '68-77']
df['idade_agrup'] = pd.cut(df.idade, range(0, 81, 10), right=False, labels=labels)
df[['idade', 'idade_agrup']].drop_duplicates()[:15]
df.groupby('idade_agrup').agg({'classificacao': [np.size, np.mean]}).round(2)
classficacao_media = df.loc[filmes_50.index].groupby(['titulo', 'idade_agrup'])
classficacao_media.classificacao.mean().head(15)
classificacao_media.classificacao.mean().unstack(1).fillna(0)[10:20]
pivot = df.pivot_table(index=['filme_id', 'titulo'],
columns=['sexo'],
values='classificacao',
fill_value=0)
pivot['diff'] = pivot.M - pivot.F
pivot.reset_index('filme_id', inplace=True)
divergencia = pivot[pivot.filme_id.isin(filmes_50.index)]['diff']
divergencia.sort_values().plot(kind='barh', figsize=[9, 15])
plt.title('Média masculina vs. feminino')
plt.ylabel('Título')
plt.xlabel('Diferença de avaliação média');