Documentos de Académico
Documentos de Profesional
Documentos de Cultura
import operator
#f=pd.read_csv("movie_metadata.csv")
def menu():
print("\t\tMovieAnalyzer \n1. Reporte Director-Pelculas \n2. Reporte Genero
Pelcula - Pelculas \n3. Reporte Director-Presupuesto "
"\n4. Reporte Popularidad Pelculas (imdb) \n5. Reporte Popularidad Pelculas
(Facebook) \n6. Reporte Pelcula-Director-Actores \n7. Salir \n")
#menu()
#********************************************opcion
1****************************************************************
def dicc_director_peliculas(archivo):
data = pd.read_csv(archivo) ##llamamos al
archivo por medio de data
panda_director_pelicula = data[["director_name", "movie_title"]] #secciona la
porcion del data para trabajarlo
dicci={} #crear un diccionario vacio para aadir a los directores de
clave y peliculas de valores
for i in range(len(data)): ##recorre la
longitud del panda
director=panda_director_pelicula["director_name"][i] ##llama los
directores uno por uno
pelicula=panda_director_pelicula["movie_title"][i] ##llama las
peliculas una por una
if director not in dicci: #si el nombre del director no se
encuentra en el diccionario dicc_director_peliculas
dicci[director]=[pelicula[:-2]] #agrega al diccionario el nombre del
director y el valor el nombre de pelicula que realiz
else: #si ya se
encuentra
dicci[director] +=[pelicula[:-2]] ##aade a las
demas peliculas
return(dicci)
#dicc_director_peliculas("movie_metadata.csv")
def top_Directores(diccionario):
file = open("director_peliculas.txt", "w") #crea y abre un
archivo "director_peliculas.txt"
file.write("Reporte Director-Peliculas") # escribe en el
archivo
diccionario = dicc_director_peliculas("movie_metadata.csv") #invoca a la
funcion que tiene el diccionario creado
for directores in diccionario: #recorre por
clave el diccionario
#diccionario = dicc_director_peliculas("movie_metadata.csv")
#top_Directores(diccionario)
#**********************************************opcion
2**************************************************************
def dicc_generos_peliculas(archivo):
data = pd.read_csv("movie_metadata.csv") ##llamamos al
archivo por medio de data
panda_genero_pelicula = data[["genres", "movie_title"]]
dicci={}
for i in range(len(data)): ##recorre la
longitud del data
pelicula=panda_genero_pelicula["movie_title"][i] ##llama las
peliculas una por una
genero=str(panda_genero_pelicula["genres"][i]).split("|") ##llama a los
generos uno por uno
for generoi in genero: ##para cada
elemento que est en genero
if str(generoi) not in dicci: ##preguntar si
el genero no se encuentra en el diccionario
dicci[str(generoi)] = [str(pelicula)[0:-2]] #agrega al
diccionario de clave, el nombre del genero, y de valor, el nombre de pelicula
else:
dicci[str(generoi)] += [str(pelicula)[0:-2]] ##aade a las
demas peliculas que pertenecen al genero
return(dicci)
dicc_generos_peliculas("movie_metadata.csv")
def generos(diccionario):
diccionario = dicc_generos_peliculas("movie_metada.csv") #llama a la
funcion que contiene el diccionario
l_generos=["Horror", "Drama", "Comedy", "Sci-Fi", "Thriller"] #hacer una lista
con los generos que deseo buscar
for gen in l_generos: #recorrer cada
genero de la lista
print("\nGenero:",gen) #imprime el
genero
print("Cantidad de peliculas: ",len(diccionario[gen])) #imprime la
cantidad de peliculas que pertenecen al genero
print("Lista de peliculas:\n",diccionario[gen]) #imprime las
peliculas
diccionario=dicc_generos_peliculas("movie_metada.csv")
#generos(diccionario)
#********************************************opcion 3
******************************************************************
def dicc_directores_budget(archivo):
data = pd.read_csv("movie_metadata.csv") ##llamamos al
archivo por medio de panda
panda_director_presupuesto = data[["director_name", "budget"]] #selecciona una
parte de data para trabajarlo
dicci={}
for i in range(len(data)): ##recorre la
longitud del panda
budget1= panda_director_presupuesto["budget"][i] ##llama a los
budget uno por uno
directores=panda_director_presupuesto["director_name"][i] ##llama a los
directores uno por uno
dicci[directores] = dicci.get(directores, []) + [budget1] #agrega al
diccionario de clave, el nombre del director, y de valor, el presupuesto por pelicula
#print(dicci)
return dicci
dicc_directores_budget("movie_metadata.csv")
def dicc_budget(dicc_directores_budget):
diccBudget={} # crear un
diccionario
for dir,bud in dicc_directores_budget.items(): #recorrer el
diccionario de los directores y presupuesto
acumulador=sum(bud) #sumar cada
valor de la clave
diccBudget[dir]=acumulador #agrega al
diccionario el director y el valor, el presupuesto por cada director en la pelicula
#print(diccBudget)
return diccBudget #retorna el
diccionario
dicc=dicc_directores_budget("movie_metadata.csv")
dicc_budget(dicc)
def top_Budget(diccBudget):
cont=0 #crear un
contador
l_Budget=[] #crear una lista
vacia
l_Director=[] #crear una lista
vacia
l_bud_dir=list(diccBudget.items()) #hace una lista
de tupla
for each_bud_dir in l_bud_dir: #recorre cada
elemento de la lista
l_Budget+=[each_bud_dir[1]] #agrega a la
lista el presupuesto
l_Director+=[each_bud_dir[0]] #agrega a la
lista el nombre del director
while cont!=5: #mientras el
contador sea diferente de 5
maximo_presupuesto=max(l_Budget) #selecciona el
maximo presupuesto
cont+=1 #va aumentando
el contador
index_max_budget=l_Budget.index(maximo_presupuesto) #pregunta donde
esta el indice el maximo presupuesto en la lista
print("Director: ", l_Director[index_max_budget]) #imprime el
nombre del director que tiene el maximo presupuesto
print("Presupuesto :", maximo_presupuesto, "dlares") #imprime el
presupuesto
print("\n")
Bud = l_Budget.remove(maximo_presupuesto) #quita de la
lista el maximo presupuesto
dir = l_Director.remove(l_Director[index_max_budget]) #quita el nombre
del director con el maximo presupuesto
dic=dicc_directores_budget("movie_metadata.csv")
dicc=dicc_budget(dic)
#top_Budget(dicc)
#********************************************opcion
4*******************************************************************
def dicc_movie_score(archivo):
data = pd.read_csv("movie_metadata.csv") ##llamamos al
archivo por medio de data
panda_movie_score = data[["movie_title", "imdb_score"]] ##seleccionar una
parte de la informacion de data para trabajarla
dicci={} ##crear un
diccionario vacio
for i in range(len(data)): ##recorre la
longitud de data
score_imdb= panda_movie_score["imdb_score"][i] ##llama a los
resultados uno por uno
pelicula=panda_movie_score["movie_title"][i] ##llama a los
peliculas uno por uno
dicci[pelicula[:-1]] =[score_imdb] #agrega al diccionario de clave, el
nombre del la pelicula, y de valor, los resultados
#print(dicci)
return dicci
dicc_movie_score("movie_metadata.csv")
d=dicc_movie_score("movie_metadata.csv")
dicc_Imdb(d)
def top_IE(dicc):
cont = 0 #crear un
contador
l_imdb= list(dicc.values()) #hacer una lista
de las claves del diccionario
l_peliculas= list(dicc.keys()) #hacer una lista
de los valores del diccionario
l_Top_IE=[] #crear una lista
vacia
diccionario_Top=dict(l_Top_IE)
while cont != 10: #mientras que el
contador sea diferente a 10
l_menos_imdb=[] #crear una lista
vacia
maximoImdb= max(l_imdb) #buscar el max
valor del imdb
ind_Imdb = l_imdb.index(maximoImdb) #localizar el
indice donde se encuentra situado dentro d ela lista
cont += 1 #ir aumentando
el contador en 1
l_Top_IE= l_Top_IE + [(l_peliculas[ind_Imdb].strip(), maximoImdb)] #llenar la
lista l_top_IE con una tupla
l_menos_imdb= l_imdb.remove(maximoImdb) #quitar el
maximo valor de la lista
l_menos_peli=l_peliculas.remove(l_peliculas[ind_Imdb]) #quitar el
nombre de la pelicula que tiene el maximo valor
return(l_Top_IE)
d=dicc_movie_score("movie_metadata.csv")
dic=dicc_Imdb(d)
top_IE(dic)
d=dicc_movie_score("movie_metadata.csv")
dic=dicc_Imdb(d)
dicc=top_IE(dic)
#retornar_info(dicc)
#********************************************opcion 5
******************************************************************
def topTenPeliculas(nombreArchivo):
data = pd.read_csv(nombreArchivo) #lee el archivo
recibido
diccionario = {} #crear un
diccionario
movie_title = data["movie_title"] #obtiene el
nombre de las peliculas
facebook_like = data["movie_facebook_likes"] #obtiene la
cantidad de likes de cada peliculas en facebook
for i in range(len(facebook_like)): #recorre el
rango de los datos
diccionario[movie_title[i].strip()] = facebook_like[i] #agrega al
diccionario en la clave el nombre y en el valor, la cantidad de likes
datos = diccionario.items() # hace un
conjunto de tuplas con la clave y el valor del diccionario
#print(datos)
ordenado = sorted(datos, key=operator.itemgetter(1)) #ordena los
datos en una lista en forma de tupla de la pelicula y su cantidad de likes
ordenado.reverse() #invierte los
valores de mayor a menor
#print(ordenado)
lista_peliculas = [] #crear una lista
para agregar las peliculas
lista_likes = [] #crear una lista
para agregar los likes
for i in range(10): #recorrer en un
rango de 10
lista_peliculas.append(ordenado[i][0]) #agregar a la
lista las peliculas
lista_likes.append(ordenado[i][1]) #agregar a la
lista la cantidad de likes
#print(lista_peliculas)
#print(lista_likes)
def infoDirector(nombreArchivo):
data = pd.read_csv(nombreArchivo) #lee el archivo
data["movie_title"] = data["movie_title"].str.strip()
titulos = ["Avatar", "The Cave", "Mad Max"] #hacer una lista
con los nombres de las peliculas que busco
frames = [] #crear una lista
vacia
for titulo in titulos: #para cada
elemento en la lista titulos
frames.append(data[data["movie_title"] == titulo].reset_index()[["movie_title",
"director_name", "actor_1_name", "actor_2_name", "actor_3_name"]])
#print(frames)
total = pd.concat(frames) # une las dos
listas
print(total) #las imprime en
forma de tabla
directores = list(total["director_name"]) #hacer una lista
con el nombre del director
peliculas = list(total["movie_title"]) #hacer una lista
con el nombre de las peliculas
actores_principales = list(total["actor_1_name"]) #hacer una lista
con los protagonistas
actores_secundarios = list(total["actor_2_name"]) #hacer una lista
con los actores secundarios
actores_terceros = list(total["actor_3_name"]) #hacer una lista
de los actores de repartos
diccionario =
{"directores":directores,"peliculas":peliculas,"protagonista":actores_principales,"Secun
dario":actores_secundarios,"reparto":actores_terceros} #creo un diccionario de la
infomacion
#print(diccionario)
#infoDirector("movie_metadata.csv")
menu()
opcion=int(input("Seleccione una opcion"))
while 0<opcion<8:
if opcion==1: # si la
opcion es igual a 1, se genera un reporte
diccionario=dicc_director_peliculas("movie_metadata.csv") #invocar a
la funcion que crea el diccionario con los directores
top_Directores(diccionario)
print("\n")
print("################################ ELIJA OTRA OPCION
#########################################")
print("\n")
menu1=menu()
opcion = int(input("Seleccione una opcion (1-7): "))
if opcion==2:
diccionario = dicc_generos_peliculas("movie_metada.csv")
generos(diccionario)
print("\n")
print("################################ ELIJA OTRA OPCION
#########################################")
print("\n")
menu1 = menu()
opcion = int(input("Seleccione una opcion (1-7): "))
if opcion==3:
dic = dicc_directores_budget("movie_metadata.csv")
dicc = dicc_budget(dic)
top_Budget(dicc)
print("\n")
print("################################ ELIJA OTRA OPCION
#########################################")
print("\n")
menu1 = menu()
opcion = int(input("Seleccione una opcion (1-7): "))
if opcion==4:
d = dicc_movie_score("movie_metadata.csv")
dic = dicc_Imdb(d)
dicc = top_IE(dic)
retornar_info(dicc)
print("\n")
print("################################ ELIJA OTRA OPCION
#########################################")
print("\n")
menu1 = menu()
opcion = int(input("Seleccione una opcion (1-7): "))
if opcion==5:
topTenPeliculas("movie_metadata.csv")
print("\n")
print("################################ ELIJA OTRA OPCION
#########################################")
print("\n")
menu1 = menu()
opcion = int(input("Seleccione una opcion (1-7): "))
if opcion==6:
infoDirector("movie_metadata.csv")
print("\n")
print("################################ ELIJA OTRA OPCION
#########################################")
print("\n")
menu1 = menu()
opcion = int(input("Seleccione una opcion (1-7): "))
if opcion==7:
print("SALI CON XITO DEL PROGRAMA... GRACIAS!!!")
opcion=0