-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathetl.py
More file actions
92 lines (69 loc) · 3.51 KB
/
etl.py
File metadata and controls
92 lines (69 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from functools import reduce
with open(r"Sprint 2\Exercicios\Parte4\Arquivo\actors.csv") as dados:
linhas = dados.readlines()
listas = list(map(lambda linha: linha.strip('\n').split(','), linhas))
listas.pop(0)
dic_atores = []
for lista in listas:
if lista[1] == ' Jr."':
actor = lista[0].strip('"') + lista[1].strip('"')
total_gross = float(lista[2])
number_of_movies = int(lista[3])
average_per_movie = float(lista[4])
movie_1 = lista[5]
gross = float(lista[6])
else:
actor = lista[0]
total_gross = float(lista[1])
number_of_movies = int(lista[2])
average_per_movie = float(lista[3])
movie_1 = lista[4]
gross = float(lista[5])
dic_atores.append({
'actor' : actor,
'total_gross' : total_gross,
'number_of_movies' : number_of_movies,
'average_per_movie' : average_per_movie,
'movie_1' : movie_1,
'gross' : gross
})
# ETAPA 1
with open(r"Sprint 2\Exercicios\Parte4\etapa-1.txt", "w", encoding="utf-8") as arquivo:
ordenado_por_filmes = sorted(dic_atores, key=lambda x: x['number_of_movies'], reverse=True)
ator_com_mais_filmes = ordenado_por_filmes[0]
texto = f'O(A) ator/atriz que possui mais filmes no dataset é {ator_com_mais_filmes['actor']} com {ator_com_mais_filmes['number_of_movies']} filmes.'
arquivo.write(texto)
# ETAPA 2
with open(r"Sprint 2\Exercicios\Parte4\etapa-2.txt", "w", encoding="utf-8") as arquivo:
media_de_receita = reduce(lambda soma, x: x['gross'] + soma, dic_atores, 0) / len(dic_atores)
texto = f'A média de receita de bilheteria dos principais filmes de cada ator no dataset é de {round(media_de_receita, 2)} milhões de dólares.'
arquivo.write(texto)
# ETAPA 3
with open(r"Sprint 2\Exercicios\Parte4\etapa-3.txt", "w", encoding="utf-8") as arquivo:
ordenado_por_media = sorted(dic_atores, key=lambda x: x['average_per_movie'], reverse=True)
ator_com_maior_media = ordenado_por_media[0]
texto =(
f'O(A) ator/atriz que possui maior média de receita de bilheteria bruta por filme no dataset é '
f'{ator_com_maior_media['actor']} com {ator_com_maior_media['average_per_movie']} milhões de dólares de média.'
)
arquivo.write(texto)
# ETAPA 4
with open(r"Sprint 2\Exercicios\Parte4\etapa-4.txt", "w", encoding="utf-8") as arquivo:
lista_quantidades = []
for item in dic_atores:
lista_quantidades.append(item['movie_1'])
lista_final = []
for filme in lista_quantidades:
quantidade = lista_quantidades.count(filme)
lista_final.append((filme,quantidade))
set1 = set(lista_final)
lista_final = list(sorted(set1, key=lambda x: (-x[1], x[0])))
for item in lista_final:
texto = f'O filme {item[0]} aparece {item[1]} vez no dataset\n' if item[1] == 1 else f'O filme {item[0]} aparece {item[1]} vezes no dataset\n'
arquivo.write(texto)
# ETAPA 5
with open(r"Sprint 2\Exercicios\Parte4\etapa-5.txt", "w", encoding="utf-8") as arquivo:
ordenado_por_receita = sorted(dic_atores, key=lambda x: x['total_gross'], reverse=True)
for item in ordenado_por_receita:
texto = f'{item['actor']} - {item['total_gross']}\n'
arquivo.write(texto)