diff --git a/Desafio looqbox.pdf b/Desafio looqbox.pdf new file mode 100644 index 0000000..cc6bd02 Binary files /dev/null and b/Desafio looqbox.pdf differ diff --git a/desafio_looqbox.ipynb b/desafio_looqbox.ipynb new file mode 100644 index 0000000..78cdd85 --- /dev/null +++ b/desafio_looqbox.ipynb @@ -0,0 +1,1640 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0ad36849", + "metadata": {}, + "source": [ + "# Introdução\n", + "\n", + "Este documento apresenta a resolução do desafio técnico proposto pela Looqbox, contemplando consultas SQL, desenvolvimento de funções em Python para recuperação de dados e criação de visualizações analíticas." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "ea691353", + "metadata": {}, + "outputs": [], + "source": [ + "#importando as bibliotecas necessárias\n", + "import pandas as pd\n", + "from pandas import date_range\n", + "from sqlalchemy import create_engine\n", + "from dateutil.parser import parse\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "0dd72ee7", + "metadata": {}, + "source": [ + "# SQL Test" + ] + }, + { + "cell_type": "markdown", + "id": "f3197b22", + "metadata": {}, + "source": [ + "## Conexão com o banco" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "5fa2cffe", + "metadata": {}, + "outputs": [], + "source": [ + "usuario = 'looqbox-challenge'\n", + "senha = 'looq-challenge'\n", + "host = '35.199.115.174' \n", + "porta = '3306' \n", + "banco = 'looqbox-challenge'\n", + "string_conexao = f\"mysql+mysqlconnector://{usuario}:{senha}@{host}:{porta}/{banco}\"\n", + "engine = create_engine(string_conexao)" + ] + }, + { + "cell_type": "markdown", + "id": "96423458", + "metadata": {}, + "source": [ + "## Questão 1 \n", + "\n", + "Pergunta: What are the 10 most expensive products in the company?" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "4da860a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PRODUCT_NAMEPRODUCT_VAL
0Whisky Escoces THE MACALLAN Ruby Garrafa 700ml...741.99
1Whisky Escoces JOHNNIE WALKER Blue Label Garra...735.90
2Cafeteira Expresso 3 CORACOES Tres Modo Vermelho499.00
3Vinho Portugues Tinto Vintage QUINTA DO CRASTO...445.90
4Escova Dental Eletrica ORAL B D34 Professional...399.90
5Champagne Rose VEUVE CLICQUOT PONSARDIM Garraf...366.90
6Champagne Frances Brut Imperial MOET Rose Garr...359.90
7Conjunto de Panelas Allegra em Inox TRAMONTINA...359.00
8Whisky Escoces CHIVAS REGAL 18 Anos Garrafa 750ml329.90
9Champagne Frances Brut Imperial MOET & CHANDON...315.90
\n", + "
" + ], + "text/plain": [ + " PRODUCT_NAME PRODUCT_VAL\n", + "0 Whisky Escoces THE MACALLAN Ruby Garrafa 700ml... 741.99\n", + "1 Whisky Escoces JOHNNIE WALKER Blue Label Garra... 735.90\n", + "2 Cafeteira Expresso 3 CORACOES Tres Modo Vermelho 499.00\n", + "3 Vinho Portugues Tinto Vintage QUINTA DO CRASTO... 445.90\n", + "4 Escova Dental Eletrica ORAL B D34 Professional... 399.90\n", + "5 Champagne Rose VEUVE CLICQUOT PONSARDIM Garraf... 366.90\n", + "6 Champagne Frances Brut Imperial MOET Rose Garr... 359.90\n", + "7 Conjunto de Panelas Allegra em Inox TRAMONTINA... 359.00\n", + "8 Whisky Escoces CHIVAS REGAL 18 Anos Garrafa 750ml 329.90\n", + "9 Champagne Frances Brut Imperial MOET & CHANDON... 315.90" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query = \"\"\"SELECT PRODUCT_NAME, PRODUCT_VAL \n", + "FROM `looqbox-challenge`.data_product \n", + "ORDER BY PRODUCT_VAL DESC \n", + "LIMIT 10\"\"\"\n", + "\n", + "df = pd.read_sql(query, con=engine)\n", + "\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "id": "f53c28e6", + "metadata": {}, + "source": [ + "## Questão 2\n", + "\n", + "Pergunta: What sections do the 'BEBIDAS' and 'PADARIA' departments have?" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "84083c70", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DEP_NAMESECTION_NAME
0BEBIDASBEBIDAS
1BEBIDASCERVEJAS
2BEBIDASREFRESCOS
3BEBIDASVINHOS
4PADARIADOCES-E-SOBREMESAS
5PADARIAGESTANTE
6PADARIAPADARIA
7PADARIAQUEIJOS-E-FRIOS
\n", + "
" + ], + "text/plain": [ + " DEP_NAME SECTION_NAME\n", + "0 BEBIDAS BEBIDAS\n", + "1 BEBIDAS CERVEJAS\n", + "2 BEBIDAS REFRESCOS\n", + "3 BEBIDAS VINHOS\n", + "4 PADARIA DOCES-E-SOBREMESAS\n", + "5 PADARIA GESTANTE\n", + "6 PADARIA PADARIA\n", + "7 PADARIA QUEIJOS-E-FRIOS" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query = \"\"\"SELECT DISTINCT DEP_NAME, SECTION_NAME \n", + "FROM `looqbox-challenge`.data_product \n", + "WHERE DEP_NAME IN ('BEBIDAS','PADARIA') \n", + "ORDER BY DEP_NAME\"\"\"\n", + "\n", + "df = pd.read_sql(query, con=engine)\n", + "\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "id": "a2d74bdf", + "metadata": {}, + "source": [ + "## Questão 3\n", + "\n", + "Pergunta: What was the total sale of products (in $) of each Business Area in the first quarter of 2019?" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "87c9472d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Business_AreaSALES$
0Varejo1.684404e+10
1Farma1.400226e+10
2Atacado1.659796e+10
3Posto5.347998e+09
4Proximidade1.656786e+10
\n", + "
" + ], + "text/plain": [ + " Business_Area SALES$\n", + "0 Varejo 1.684404e+10\n", + "1 Farma 1.400226e+10\n", + "2 Atacado 1.659796e+10\n", + "3 Posto 5.347998e+09\n", + "4 Proximidade 1.656786e+10" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query = \"\"\"SELECT BUSINESS_NAME AS Business_Area, SUM(SALES) AS SALES$ FROM\n", + "(SELECT BUSINESS_NAME, (SALES_VALUE * SALES_QTY) AS SALES\n", + "FROM `looqbox-challenge`.data_product_sales sales \n", + "LEFT JOIN `looqbox-challenge`.data_store_cad store ON sales.STORE_CODE = store.STORE_CODE\n", + "WHERE QUARTER(sales.DATE)=1 AND YEAR(sales.DATE)=2019) AS A\n", + "GROUP BY BUSINESS_NAME\"\"\"\n", + "\n", + "df = pd.read_sql(query, con=engine)\n", + "\n", + "df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "0a61b724", + "metadata": {}, + "outputs": [], + "source": [ + "# Fechando conexão com o banco de dados\n", + "engine.dispose()" + ] + }, + { + "cell_type": "markdown", + "id": "06aa15d6", + "metadata": {}, + "source": [ + "# CASES" + ] + }, + { + "cell_type": "markdown", + "id": "ad8d091d", + "metadata": {}, + "source": [ + "## CASE 1" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "b7da6882", + "metadata": {}, + "outputs": [], + "source": [ + "# 1. Configurações de acesso ao banco de dados\n", + "usuario = 'looqbox-challenge'\n", + "senha = 'looq-challenge'\n", + "host = '35.199.115.174' \n", + "porta = '3306' \n", + "banco = 'looqbox-challenge'\n", + "\n", + "string_conexao = f\"mysql+mysqlconnector://{usuario}:{senha}@{host}:{porta}/{banco}\"\n", + "engine = create_engine(string_conexao)\n", + "\n", + "# 2. Função para corrigir as datas e montar a query\n", + "def retrieve_data(product_code:int, store_code:int, date:list[str]):\n", + " datas_corrigidas = []\n", + "\n", + " # 1. LOOP PARA CORREÇÃO AUTOMÁTICA\n", + " for d in date:\n", + " try: \n", + " data_objeto = parse(d, dayfirst=True)\n", + " \n", + " data_formatada = data_objeto.strftime(\"%Y-%m-%d\")\n", + " datas_corrigidas.append(data_formatada)\n", + " \n", + " except (ValueError, TypeError):\n", + " # Se o texto for algo completamente ilegível (ex: \"texto_qualquer\")\n", + " raise ValueError(f\"Não foi possível entender a data: '{d}'. Digite uma data válida.\")\n", + "\n", + " # 2. MONTAGEM DA QUERY\n", + " query = (f\"\"\"SELECT *\n", + " FROM \n", + " data_product_sales \n", + " WHERE \n", + " PRODUCT_CODE = {product_code} AND \n", + " STORE_CODE = {store_code} AND \n", + " DATE BETWEEN '{datas_corrigidas[0]}' AND '{datas_corrigidas[1]}' \"\"\")\n", + " return pd.read_sql(query, con=engine)\n", + "\n", + "my_data = retrieve_data(10, 10, ['01/01/2019', '2019-01-31'])\n", + "\n", + "# 4. Fechar a conexão\n", + "engine.dispose()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "d21b6b5c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STORE_CODEPRODUCT_CODEDATESALES_VALUESALES_QTY
010102019-01-012386.1565.0
110102019-01-024368.49119.0
210102019-01-033854.55105.0
310102019-01-043671.00100.0
410102019-01-053010.2282.0
\n", + "
" + ], + "text/plain": [ + " STORE_CODE PRODUCT_CODE DATE SALES_VALUE SALES_QTY\n", + "0 10 10 2019-01-01 2386.15 65.0\n", + "1 10 10 2019-01-02 4368.49 119.0\n", + "2 10 10 2019-01-03 3854.55 105.0\n", + "3 10 10 2019-01-04 3671.00 100.0\n", + "4 10 10 2019-01-05 3010.22 82.0" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data.head()" + ] + }, + { + "cell_type": "markdown", + "id": "6d59a523", + "metadata": {}, + "source": [ + "## CASE 2" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "c2d26807", + "metadata": {}, + "outputs": [], + "source": [ + "# 1. Configurações de acesso ao banco de dados\n", + "usuario = 'looqbox-challenge'\n", + "senha = 'looq-challenge'\n", + "host = '35.199.115.174' \n", + "porta = '3306' \n", + "banco = 'looqbox-challenge'\n", + "\n", + "string_conexao = f\"mysql+mysqlconnector://{usuario}:{senha}@{host}:{porta}/{banco}\"\n", + "engine = create_engine(string_conexao)\n", + "\n", + "# 2. Consultas SQL para ler as tabelas\n", + "query1 = \"\"\"SELECT\n", + " STORE_CODE,\n", + " STORE_NAME,\n", + " START_DATE,\n", + " END_DATE,\n", + " BUSINESS_NAME,\n", + " BUSINESS_CODE\n", + "FROM data_store_cad\"\"\"\n", + "\n", + "query2 = \"\"\"SELECT\n", + " STORE_CODE,\n", + " DATE,\n", + " SALES_VALUE,\n", + " SALES_QTY\n", + "FROM data_store_sales\n", + "WHERE DATE BETWEEN '2019-01-01' AND '2019-12-31'\"\"\"\n", + "\n", + "# 3. Ler as tabelas usando as consultas SQL e armazenar em DataFrames do Pandas\n", + "df1 = pd.read_sql(query1, con=engine)\n", + "df2 = pd.read_sql(query2, con=engine)\n", + "\n", + "# 4. Fechar a conexão\n", + "engine.dispose()" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "fb04b18d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STORE_CODESTORE_NAMESTART_DATEEND_DATEBUSINESS_NAMEBUSINESS_CODE
01Sao Paulo2006-10-01Varejo1
12Chicago2007-10-01Varejo1
23Roma2008-10-01Varejo1
34Tokio2009-10-01Varejo1
45Paris2019-01-01Proximidade2
\n", + "
" + ], + "text/plain": [ + " STORE_CODE STORE_NAME START_DATE END_DATE BUSINESS_NAME BUSINESS_CODE\n", + "0 1 Sao Paulo 2006-10-01 Varejo 1\n", + "1 2 Chicago 2007-10-01 Varejo 1\n", + "2 3 Roma 2008-10-01 Varejo 1\n", + "3 4 Tokio 2009-10-01 Varejo 1\n", + "4 5 Paris 2019-01-01 Proximidade 2" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "2e21862f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STORE_CODEDATESALES_VALUESALES_QTY
012019-01-01196623.2212838
1102019-01-01126795.444933
2112019-01-01223937.007724
3122019-01-01200251.807043
4132019-01-01196623.2212838
\n", + "
" + ], + "text/plain": [ + " STORE_CODE DATE SALES_VALUE SALES_QTY\n", + "0 1 2019-01-01 196623.22 12838\n", + "1 10 2019-01-01 126795.44 4933\n", + "2 11 2019-01-01 223937.00 7724\n", + "3 12 2019-01-01 200251.80 7043\n", + "4 13 2019-01-01 196623.22 12838" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "609e6957", + "metadata": {}, + "outputs": [], + "source": [ + "# 5. transformar a coluna 'DATE' para o formato datetime e filtrar as datas\n", + "df2['DATE'] = pd.to_datetime(df2['DATE'])\n", + "df2 = df2[(df2['DATE'] >= '2019-10-01') & (df2['DATE'] <= '2019-12-31')]\n", + "\n", + "# Agrupar por STORE_CODE e calcular o Ticket Médio\n", + "df2 = df2.groupby('STORE_CODE').agg({'SALES_VALUE':'sum', 'SALES_QTY':'sum'}).reset_index()\n", + "df2['TM'] = df2['SALES_VALUE'] / df2['SALES_QTY']\n", + "df2['TM'] = df2['TM'].round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "9e52c83a", + "metadata": {}, + "outputs": [], + "source": [ + "# 6. Fazer o merge entre os DataFrames df1 e df2 usando a coluna 'STORE_CODE' como chave\n", + "tm = df1.merge(df2,\n", + " left_on='STORE_CODE',\n", + " right_on='STORE_CODE',\n", + " how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "a6336942", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
STORE_CODESTORE_NAMESTART_DATEEND_DATEBUSINESS_NAMEBUSINESS_CODESALES_VALUESALES_QTYTM
01Sao Paulo2006-10-01Varejo121213088.57137847615.39
12Chicago2007-10-01Varejo121928421.28141237215.53
23Roma2008-10-01Varejo121213088.57137847615.39
34Tokio2009-10-01Varejo121213088.57137847615.39
45Paris2019-01-01Proximidade221213088.57137847615.39
\n", + "
" + ], + "text/plain": [ + " STORE_CODE STORE_NAME START_DATE END_DATE BUSINESS_NAME BUSINESS_CODE \\\n", + "0 1 Sao Paulo 2006-10-01 Varejo 1 \n", + "1 2 Chicago 2007-10-01 Varejo 1 \n", + "2 3 Roma 2008-10-01 Varejo 1 \n", + "3 4 Tokio 2009-10-01 Varejo 1 \n", + "4 5 Paris 2019-01-01 Proximidade 2 \n", + "\n", + " SALES_VALUE SALES_QTY TM \n", + "0 21213088.57 1378476 15.39 \n", + "1 21928421.28 1412372 15.53 \n", + "2 21213088.57 1378476 15.39 \n", + "3 21213088.57 1378476 15.39 \n", + "4 21213088.57 1378476 15.39 " + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tm.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "2bd82528", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
LojaCategoriaTM
13BahiaAtacado15,39
17BangkokPosto13,67
7BelemProximidade15,37
5BerlinProximidade15,39
14Buenos AiresAtacado15,39
1ChicagoVarejo15,53
12DubaiAtacado15,39
9Hong KongFarma26,35
8LondonFarma28,99
11MadriFarma29,03
18MiamiPosto13,67
6New YorkProximidade15,39
4ParisProximidade15,39
10Rio de JaneiroFarma29,59
2RomaVarejo15,39
15SalvadorAtacado15,39
0Sao PauloVarejo15,39
16SidneyPosto13,67
3TokioVarejo15,39
19VancouverPosto13,67
\n", + "
" + ], + "text/plain": [ + " Loja Categoria TM\n", + "13 Bahia Atacado 15,39\n", + "17 Bangkok Posto 13,67\n", + "7 Belem Proximidade 15,37\n", + "5 Berlin Proximidade 15,39\n", + "14 Buenos Aires Atacado 15,39\n", + "1 Chicago Varejo 15,53\n", + "12 Dubai Atacado 15,39\n", + "9 Hong Kong Farma 26,35\n", + "8 London Farma 28,99\n", + "11 Madri Farma 29,03\n", + "18 Miami Posto 13,67\n", + "6 New York Proximidade 15,39\n", + "4 Paris Proximidade 15,39\n", + "10 Rio de Janeiro Farma 29,59\n", + "2 Roma Varejo 15,39\n", + "15 Salvador Atacado 15,39\n", + "0 Sao Paulo Varejo 15,39\n", + "16 Sidney Posto 13,67\n", + "3 Tokio Varejo 15,39\n", + "19 Vancouver Posto 13,67" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Transformações finais para exibição do resultado\n", + "tm = tm.rename(columns={'STORE_NAME':'Loja','BUSINESS_NAME':'Categoria'})\n", + "tm = tm[['Loja','Categoria','TM']]\n", + "tm = tm.sort_values(by='Loja')\n", + "tm['TM'] = tm['TM'].map('{:.2f}'.format).str.replace('.', ',', regex=False) #Feito com IA\n", + "\n", + "tm.head(20)" + ] + }, + { + "cell_type": "markdown", + "id": "4f2314fb", + "metadata": {}, + "source": [ + "## Case 3" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "7b467af3", + "metadata": {}, + "outputs": [], + "source": [ + "# 1. Configurações de acesso ao banco de dados\n", + "usuario = 'looqbox-challenge'\n", + "senha = 'looq-challenge'\n", + "host = '35.199.115.174' \n", + "porta = '3306' \n", + "banco = 'looqbox-challenge'\n", + "string_conexao = f\"mysql+mysqlconnector://{usuario}:{senha}@{host}:{porta}/{banco}\"\n", + "engine = create_engine(string_conexao)\n", + "\n", + "# 2. Criando query para ler a tabela IMDB_movies\n", + "query = \"\"\"SELECT* FROM IMDB_movies\"\"\"\n", + "\n", + "df = pd.read_sql(query, con=engine)\n", + "\n", + "# 3. Fechar a conexão\n", + "engine.dispose()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "d5edc92c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IdTitleGenreDirectorActorsYearRuntimeRatingVotesRevenueMillionsMetascore
01Guardians of the GalaxyAction,Adventure,Sci-FiJames GunnChris Pratt, Vin Diesel, Bradley Cooper, Zoe S...20141218.0757074333.076.0
12PrometheusAdventure,Mystery,Sci-FiRidley ScottNoomi Rapace, Logan Marshall-Green, Michael Fa...20121247.0485820126.065.0
23SplitHorror,ThrillerM. Night ShyamalanJames McAvoy, Anya Taylor-Joy, Haley Lu Richar...20161177.0157606138.062.0
34SingAnimation,Comedy,FamilyChristophe LourdeletMatthew McConaughey,Reese Witherspoon, Seth Ma...20161087.060545270.059.0
45Suicide SquadAction,Adventure,FantasyDavid AyerWill Smith, Jared Leto, Margot Robbie, Viola D...20161236.0393727325.040.0
\n", + "
" + ], + "text/plain": [ + " Id Title Genre \\\n", + "0 1 Guardians of the Galaxy Action,Adventure,Sci-Fi \n", + "1 2 Prometheus Adventure,Mystery,Sci-Fi \n", + "2 3 Split Horror,Thriller \n", + "3 4 Sing Animation,Comedy,Family \n", + "4 5 Suicide Squad Action,Adventure,Fantasy \n", + "\n", + " Director Actors \\\n", + "0 James Gunn Chris Pratt, Vin Diesel, Bradley Cooper, Zoe S... \n", + "1 Ridley Scott Noomi Rapace, Logan Marshall-Green, Michael Fa... \n", + "2 M. Night Shyamalan James McAvoy, Anya Taylor-Joy, Haley Lu Richar... \n", + "3 Christophe Lourdelet Matthew McConaughey,Reese Witherspoon, Seth Ma... \n", + "4 David Ayer Will Smith, Jared Leto, Margot Robbie, Viola D... \n", + "\n", + " Year Runtime Rating Votes RevenueMillions Metascore \n", + "0 2014 121 8.0 757074 333.0 76.0 \n", + "1 2012 124 7.0 485820 126.0 65.0 \n", + "2 2016 117 7.0 157606 138.0 62.0 \n", + "3 2016 108 7.0 60545 270.0 59.0 \n", + "4 2016 123 6.0 393727 325.0 40.0 " + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "id": "7fa28c8b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
YearRating
020067.272727
120077.207547
220086.846154
320097.058824
420106.883333
\n", + "
" + ], + "text/plain": [ + " Year Rating\n", + "0 2006 7.272727\n", + "1 2007 7.207547\n", + "2 2008 6.846154\n", + "3 2009 7.058824\n", + "4 2010 6.883333" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Criação de média para gráfico de linha\n", + "media_ano = df.groupby('Year').agg({'Rating':'mean'}).reset_index()\n", + "media_ano.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "04358c99", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Criação do gráfico de linha\n", + "plt.figure(figsize=(10,5))\n", + "plt.plot(\n", + " media_ano[\"Year\"],\n", + " media_ano[\"Rating\"],\n", + " marker=\"o\"\n", + ")\n", + "plt.title(\"Evolução da nota média dos filmes ao longo dos anos\")\n", + "plt.xlabel(\"Ano\")\n", + "plt.ylabel(\"Nota média\")\n", + "plt.grid(True)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "e0147d60", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Main_GenreRevenueMillions
2Animation191.170213
0Action122.101449
1Adventure113.422535
9Mystery64.454545
7Fantasy63.000000
\n", + "
" + ], + "text/plain": [ + " Main_Genre RevenueMillions\n", + "2 Animation 191.170213\n", + "0 Action 122.101449\n", + "1 Adventure 113.422535\n", + "9 Mystery 64.454545\n", + "7 Fantasy 63.000000" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Buscando o gênero principal de cada filme (o primeiro da lista de gêneros)\n", + "df[\"Main_Genre\"] = df[\"Genre\"].str.split(\",\").str[0]\n", + "\n", + "# Criação de média para gráfico de barras\n", + "receita_genero = df.groupby('Main_Genre').agg({'RevenueMillions':'mean'}).reset_index().sort_values(\"RevenueMillions\", ascending=False)\n", + "receita_genero.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "62b4fe12", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0rFjx7R582bFxMSofv36OnLkiKNfu3btNHr0aD3zzDPav3+/tmzZombNmumTTz5J1bn+rVatWjp58qQk6e2333bcojFlyhRHnwsXLjjaz549q08//VTz589Xnz59Uvz6e/bsqR07dmjz5s2OtunTp6tTp05JroeQ0tdz9epVtWjRQqtXr9bChQsVERGhrl276sknn0xxba54fQCQ6RkAIEuaNm2aSbKFCxeamdmqVatMkr333ntO/fbs2WPe3t723HPPOdokWcGCBe3SpUtOfR988EHLnz+/XblyJcV1tGrVygICApI8NnnyZJNk33//faJjgwYNMkkWHh6e7LkHDhxokmzTpk0prmfTpk0mycaOHevUHhsba3fccYe1a9fO0SbJihYtapcvX3a0Xbp0yfLkyWP9+vVL8zkLFChgFy9edOrbq1cv8/f3t4iICKf2kSNHmiTbuHGjmZmVKlXKevbsmeLXm+CLL74wSfbkk086tR89etSyZctmTzzxRKprSThnnz59UlTDzz//bJJs/PjxZnbt+mzbts3uvvtuy549u23evNnRd9GiRSbJvvjiC6dznD9/3oKCghx/X+fNm2eSLCwsLNmfm9JznT9/PtGf48mTJ02Svf322yl6jWZmU6ZMMUl27ty5G/bz8fGxLl26mJlZ2bJlrX///mZmtm7dOpNkGzZssO+//94k2VdffZXq1/P5558n+e9r+vTpif4uJPXab/X1AUBWwUg3AECStHLlSknSI4884tResWJFValSxXE8QbNmzZQ9e3antrZt2+rMmTOJpkzfquunlqfmmJkl2b5jx45Eq7avXbtWkvTdd99Jujbqfz0fHx81btxYa9ascWpv2rSp02hj9uzZVbZsWe3bt8/RltpzNmvWTDly5HBqW7lyperUqaPixYs7tSfc05vw51OtWjV9/fXXeuedd/T3338n+fpvpHXr1k6PCxcurLp162rVqlWpriW5c97MwIED5eXlJV9fX1WtWlV79uzRypUrdddddzn6LF68WD4+Pnr44YednpsrVy7VrVvXcU2XLl0qLy8v/fe//03256X0XGmxevVqtWzZUkFBQfLx8XGafp6aP58ePXroq6++0tWrVzVt2jSFhoaqTp06t/R6Vq5cqYCAgEQzQf79vNvx+gAgMyN0AwAkXdvGS7oWsv6tcOHCie7DDQ4OTtQv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AACAZDHSDQAAAACAmxC6AQAAAABwE0I3AAAAAABuQugGAAAAAMBNCN0AAAAAALgJoRsAAAAAADchdAMAAAAA4CaEbgAAAAAA3ITQDQAAAACAmxC6AQAAAABwE0I3AAAAAABuQugGAAAAAMBNCN0AAAAAALgJoRsAAAAAADchdAMAAAAA4CaEbgAAAAAA3ITQDQAAAACAmxC6AQAAAABwE0I3AAAAAABuQugGAAAAAMBNCN0AAAAAALgJoRsAAAAAADchdAMAAAAA4CaEbgAAAAAA3ITQDQAAAACAmxC6AQAAAABwE0I3AAAAAABuQugGAAAAAMBNCN0AAAAAALgJoRsAAAAAADchdAMAAAAA4CYeDd2XL1/W9OnTVbduXeXLl09r165N1Kd48eLKly9foq8XX3zR0WfQoEGJjtevX/92vhQAAAAAABLx9eQPf/XVV3Xs2DG9+OKLat++vWJjYxP12blzp8zM8XjdunVq1aqV7r//fkfbpUuX1KhRI33++eeONh8fH/cWDwAAAADATXg0dI8bN05eXl46dOhQsn3y5s3r9Hju3LkqXbq0mjZt6tTu5+enfPnyuaNMAAAAAADSxKPTy728vFLV//z585o7d64ef/zxRM9duXKlihYtqjvvvFNPPPGEjh8/7spSAQAAAABItQy1kNrs2bMVHR2tnj17OrUXK1ZMH3zwgdavX6+wsDDt2rVLDRo00MWLF5M9V3R0tKKiopy+AAAAAABwpQwVuqdOnapWrVqpSJEiTu0jRoxQt27dVKJECdWrV08LFy5URESEZs+eney5xo4dq7x58zq+QkJC3F0+AAAAACCLyTChe+fOndqwYYP69Olz074FCxZUyZIl9eeffybbZ9iwYYqMjHR8RUREuLJcAAAAAAA8u5BaakydOlXFixdXy5Ytb9r34sWLOnTokAoVKpRsn4CAAAUEBLiyRAAAAAAAnGSIke6rV6/qiy++UK9evRJtBZZwj/dff/0lM9PRo0fVvXt3+fv767///a+HKgYAAAAAwMOhe9asWcqXL58qVaokSXrwwQeVL18+jRs3zqnft99+qzNnzqhXr16JzhEQEKBmzZqpffv2ypEjhypWrKgrV67ol19+UbFixW7L6wAAAAAAICleZmae+uFXr17VpUuXErVny5ZN2bJlczy+cuWKrl69qjx58tz0fP7+/mmqJSoqSnnz5lVkZORNf44nlRq6xNMlpCsHxrXydAkAAAAAsqCUZkiP3tPt7++fopD87xB+o/MBAAAAAJBeZIh7ugEAAAAAyIgI3QAAAAAAuAmhGwAAAAAANyF0AwAAAADgJoRuAAAAAADchNANAAAAAICbELoBAAAAAHATQjcAAAAAAG5C6AYAAAAAwE0I3QAAAAAAuAmhGwAAAAAANyF0AwAAAADgJoRuAAAAAADchNANAAAAAICbELoBAAAAAHATQjcAAAAAAG5C6AYAAAAAwE0I3QAAAAAAuAmhGwAAAAAANyF0AwAAAADgJoRuAAAAAADchNANAAAAAICbELoBAAAAAHATQjcAAAAAAG5C6AYAAAAAwE0I3QAAAAAAuAmhGwAAAAAANyF0AwAAAADgJoRuAAAAAADchNANAAAAAICbELoBAAAAAHATQjcAAAAAAG5C6AYAAAAAwE0I3QAAAAAAuAmhGwAAAAAANyF0AwAAAADgJoRuAAAAAADchNANAAAAAICbELoBAAAAAHATQjcAAAAAAG5C6AYAAAAAwE0I3QAAAAAAuAmhGwAAAAAANyF0AwAAAADgJr6eLkCSzp8/r8OHD6tEiRLKkSOH07Hjx4/r7NmzTm0BAQEqXbp0kuc5ffq0ihUrJj8/P7fWDAAAAADAzXh0pHvPnj3q27evSpcurTvvvFO//fZboj4jR45UnTp11LZtW8fXc88959QnNjZWTz75pIKCglSnTh0FBwfryy+/vF0vAwAAAACAJHk0dK9cuVLVqlXTzz//fMN+LVq00J49exxf3377rdPxcePGaeHChdq+fbtOnDihd955Rz169NC2bdvcWT4AAAAAADfk0dD99NNPq1+/fsqdO/cN+5mZwsPDFRkZmeTxyZMn6/HHH1eFChUkSb169VK5cuX02WefubxmAAAAAABSKkMspLZgwQLVrVtXwcHBqlq1qn755RfHsWPHjunQoUOqW7eu03Pq1aunzZs33+5SAQAAAABwSPehu0GDBvrrr7905MgRnTt3TnXr1lWrVq106NAhSdLp06clSUFBQU7PCwoK0qlTp5I9b3R0tKKiopy+AAAAAABwpXQfurt166by5ctLkrJly6aPPvpIcXFxWrBggSTJx8dHknT16lWn50VHR8vXN/nF2ceOHau8efM6vkJCQtz0CgAAAAAAWVW6D93/5u/vr8KFCys8PFySVKxYMXl5eeno0aNO/Y4dO6bixYsne55hw4YpMjLS8RUREeHWugEAAAAAWU+6Dt1mptjYWKe2iIgIHThwwLFoWu7cuVWzZk398MMPjj5Xr17VihUr1Lhx42TPHRAQoDx58jh9AQAAAADgSsnPv74NIiMjdfToUR0/flySFB4erj179igoKEhBQUGKiYlR3bp1NWDAAFWqVEnh4eF65ZVXVLZsWXXp0sVxnlGjRql169aqWrWq6tWrp/fee0/ZsmVT3759PfXSAAAAAADw7Ej3qlWr1LZtWz355JOqWLGi3njjDbVt21azZ8+WdG0q+VdffaW1a9eqb9++mjRpkjp06KDNmzcrZ86cjvP85z//0TfffKNly5apX79+ypYtm9auXav8+fN76qUBAAAAACAvMzNPF5EeREVFKW/evIqMjEzXU81LDV3i6RLSlQPjWnm6BAAAAABZUEozZLq+pxsAAAAAgIyM0A0AAAAAgJsQugEAAAAAcBNCNwAAAAAAbkLoBgAAAADATdK8T7eZ6fTp05KkAgUKyMvLy2VFAQAAAACQGaRqpPvy5csKCwtTixYtlDNnThUsWFAFCxZUrly5dP/992v69Om6cuWKu2oFAAAAACBDSXHo/vzzz1WmTBm9+eabqly5sqZOnaqVK1dq5cqVmjJlikJDQ/XGG2+oTJkymjFjhjtrBgAAAAAgQ0jx9PJp06Zp9uzZatSoUZLH//vf/2r8+PFas2aNXnnlFXXv3t1lRQIAAAAAkBGlOHT/9NNPKerXqFEjrVmzJq31AAAAAACQabB6OQAAAAAAbpLq1cvNTAsWLNCCBQu0f/9+eXl5qXTp0mrXrp3atm3LKuYAAAAAAPx/qRrpNjN16tRJ7du317Zt21S0aFEVKVJEW7du1SOPPKKuXbu6q04AAAAAADKcVI10z5o1SytWrND//vc/3XPPPU7H1qxZo7Zt22rOnDnq2LGjS4sEAAAAACAjStVI98yZM/X6668nCtzStQXUXnvtNbYLAwAAAADg/0tV6N66datatWqV7PGHHnpIW7ZsueWiAAAAAADIDFIVuk+fPq2iRYsme7xo0aI6ffr0LRcFAAAAAEBmkKrQHRMTIx8fn2SP+/r66urVq7dcFAAAAAAAmUGqtwx7/PHH3VEHAAAAAACZTqpCd4MGDbRnz56b9gEAAAAAAKkM3WvXrnVXHQAAAAAAZDqpuqcbAAAAAACkXKpC95UrVzR//nyntu+++06VKlVS0aJF9dRTT7GQGgAAAAAA/1+qQveUKVP0888/Ox4fPnxYHTt2VHBwsLp376758+frrbfecnmRAAAAAABkRKkK3dOmTVOvXr0cjxcsWKD8+fPrhx9+0Lhx4zRjxgx99dVXLi8SAAAAAICMKFWhe8+ePapQoYLj8c8//6yWLVvK399fktSwYUOFh4e7tkIAAAAAADKoVIXufPny6cCBA5IkM9Mvv/yiunXrOo5fuHBBOXPmdGmBAAAAAABkVKkK3U2bNtUzzzyjdevWafTo0Tpx4oRatmzpOL5161bVrFnT5UUCAAAAAJARpWqf7tdff10PPPCAGjRoIC8vL40bN07FihVzHP/444/Vr18/lxcJAAAAAEBGlKrQHRISom3btmnv3r3Kly+fgoODnY6PHTtWd955p0sLBAAAAAAgo0pV6JYkb29vVaxYMcljoaGht1wQAAAAAACZRapCd/HixZNsz5MnjypWrKjnn39eDRs2dElhAAAAAABkdKkK3Y8//niS7efPn9e2bdt07733atmyZWrevLlLigMAAAAAICNLVeh+9dVXb3h8woQJGjNmDKEbAAAAAAClcsuwm+natat27drlylMCAAAAAJBhuTR0e3l5KT4+3pWnBAAAAAAgw3Jp6J4zZw5bhgEAAAAA8P+l6p7ucePGJdmesJDa0qVLtXjxYpcUBgAAAABARpeq0P3OO+8k2Z47d25VrFhRy5YtU7NmzVxSGAAAAAAAGV2qQvepU6fcVQcAAAAAAJmOS+/pBgAAAAAA/4fQDQAAAACAmxC6AQAAAABwE0I3AAAAAABukubQHRkZ6fj+5MmT+uSTT/Tjjz+6pCgAAAAAADKDVK1enuDzzz/XmjVrFBYWptjYWDVq1EinT59WZGSkPvjgAz3xxBOpOt+mTZu0Z88eNW/eXMHBwYmOnzx5Ups2bZKvr69q1KihoKAgp+O//fab/vrrL6e2fPny6cEHH0z9iwMAAAAAwEXSFLrffvttzZ8/X5K0Zs0aRUdHKyIiQv/73//07LPPpjh0L1++XMOGDdOlS5e0Z88erV692il0m5meeOIJff/996pataouXbqkTZs2afz48erTp4+jX1hYmL7//nvdc889jraQkBBCNwAAAADAo9IUuvft26eSJUtKklatWqW2bdvK399fDRs21IEDB1J8nujoaH3yyScqUqSIQkJCEh03M9199936+OOP5efnJ0n69NNP1a9fP7Vo0cJRgyTVrl1bM2fOTMvLAQAAAADALdJ0T3dISIh+/PFHRUdHa+7cuWrWrJkk6cCBA05B+GYeeugh1a5dO/nivL31+OOPOwK3JLVt21ZxcXHauXOnU98zZ85owYIFWrlypc6cOZPKVwQAAAAAgOulKXQPGTJEDz/8sAoWLKhcuXI5QveMGTPUo0cPlxb4b8uXL5eXl5cqVark1L5z505Nnz5dgwcPVsmSJTVlypQbnic6OlpRUVFOXwAAAAAAuFKappf36tVL9evXV3h4uBo2bOgYia5evboeeughlxZ4vX379mnAgAHq37+/04h6586d9f777ysgIECS9OGHH6pfv36qXbu2qlWrluS5xo4dq1GjRrmtVgAAAAAA0rxl2B133KEWLVooR44cjrYOHTooe/bsLins3w4dOqRmzZqpYcOGeu+995yO3XvvvY7ALUnPPPOM8uXLpx9++CHZ8w0bNkyRkZGOr4iICLfUDQAAAADIutIcujds2KB+/frp/vvvd7SFhYXpwoULLinseocPH1bjxo1VuXJlff311/L1vfkAfc6cOXXq1KlkjwcEBChPnjxOXwAAAAAAuFKaQvfixYvVpEkTXbx4UcuXL3e0HzlyJNEo9K1KCNyhoaGaN2+e/P39nY7Hx8fr2LFjTm0bN25UeHi47r77bpfWAgAAAABAaqTpnu6RI0dq5syZeuSRR/TFF1842jt06KAWLVrolVdeSdF59u3bp3Xr1uns2bOSpB9//FGHDh1S1apVVbVqVUVHR6tp06aKiopS27Zt9fXXXzueW69ePZUtW1ZxcXG677771KxZM1WqVEnh4eH6+OOP1aZNGz3yyCNpeXkAAAAAALhEmkL3nj171LJlS0mSl5eXo71o0aI6cuRIis9z+PBhx33XXbp00cGDB3Xw4EHlyJFDVatWVUxMjGrVqiXp2n7g1ytevLjKli0rPz8/bd68WV988YW2bNmiwMBAzZo1Sw888EBaXhoAAAAAAC6TptAdGBio8PBw3XHHHU6he+3atQoJCUnxee655x7dc889yR7PlSuXZs6cedPzZM+eXU888USKfy4AAAAAALdDmkJ3ly5d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3WvXrlVISIhrKgMAAAAAIINLU+ju0qWLnnrqKR04cECSdPnyZS1atEiPP/64unXr5sr6AAAAAADIsNIUuseMGaMiRYqodOnSio+PV65cudS2bVs1btxYw4cPd3WNAAAAAABkSL5peVJAQIC+/PJLjRkzRps3b1Z8fLxq1KihChUquLo+AAAAAAAyrDSF7gRlypRRmTJlXFULAAAAAACZSpqml+/atSvJaeQvvfSSdu/efctFAQAAAACQGaQpdD/zzDNq2rRpovZmzZrpueeeu+WiAAAAAADIDNIUun/99VfVqVMnUXvt2rW1bt26Wy4KAAAAAIDMIE2hu0CBAtq6dWui9i1btihfvny3WBIAAAAAAJlDmvfp7tWrl1atWqWrV68qOjpaK1euVK9evdS5c2dX1wgAAAAAQIaUptXLR40apf3796tp06by9r6W2+Pj49WhQweNGTPGpQUCAAAAAJBRpXmf7jlz5mjMmDHasmWLvLy8VKNGDZUvX97V9QFAlldq6BJPl5CuHBjXytMlAAAApNgt7dNdoUIFVahQwVW1AAAAAACQqaTpnm5J2rBhg/r166f777/f0RYWFqYLFy64pDAAAAAAADK6NI10L168WB07dlT79u21fPlyR/uRI0f03nvv6ZVXXnFZgQAAuBpT9p0xZR8AAPdJ00j3yJEjNXPmTM2YMcOpvUOHDgoLC3NJYQAAAAAAZHRpGunes2ePWrZsKUny8vJytBctWlRHjhxxTWUAACDDYPaAM2YPAAASpGmkOzAwUOHh4ZKcQ/fatWsVEhLimsoAAAAAAMjg0hS6u3TpoqeeekoHDhyQJF2+fFmLFi3S448/rm7durmyPgAAAAAAMqw0he4xY8aoSJEiKl26tOLj45UrVy61bdtWjRs31vDhw11dIwAAAAAAGVKa7ukOCAjQl19+qTFjxmjz5s2Kj49XjRo12LMbAAAAAIDrpCl0JyhTpozKlCnjeHz27FmNHTtWb7311i0XBgAAAABARpfq6eXh4eH64osvNGXKFMdK5TExMXr33XdVtmxZzZw50+VFAgAAAACQEaVqpPunn37Sgw8+qIsXL0qScufOre+//16DBg3S7t27NXjwYA0aNMgthQIAAAAAkNGkaqR7xIgR6tSpk06dOqWTJ0+qXbt2atGihXLmzKm//vpLL7/8snLkyOGuWgEAAAAA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KipKISEhioiIUJ48eTxdTqbANXUtrqfrcU1dj2vqelxT1+J6uh7X1PW4pq7HNU05M9P58+dVtGjRG/bL8KG7ZMmS8vf31/79+53a9+/fr3LlyiX7vICAAAUEBDi15cuXzx0lZlp58uThH6KLcU1di+vpelxT1+Oauh7X1LW4nq7HNXU9rqnrcU1TJm/evDftk+EXUvPz81PLli01e/Zsx1z6I0eOaPXq1WrdurWHqwMAAAAAZGUZfqRbkt58803Vr19fbdq0Ud26dTVjxgzdfffd6tq1q6dLAwAAAABkYRl+pFuS7rjjDm3btk1169bV8ePH9cILL2jFihXy9c0UnymkOwEBARo5cmSi6flIO66pa3E9XY9r6npcU9fjmroW19P1uKauxzV1Pa6p62X41csBAAAAAEivMsVINwAAAAAA6RGhGwAAAAAANyF0AwAAAADgJoRuAAAAAADchNANAAAAINN59tlnNX/+fE+XARC6AQDut2PHDj322GOeLiPTuHTpklq1aqULFy54uhQgTfbs2aNffvnF02VkWIsXL9aJEyc8XUa6lz9/fj322GM6deqUp0tBFkfoBgC43eXLlzVjxgzt2bPH06VkCr6+vvr9998VFhbm6VIytStXrni6hEzrvffe0+jRoz1dRoY1fPhwTZw40dNlpGvr1q1Tz549tXXrVi1btowRb3gUoRvpwvz581WvXj01b95cP//8s6fLSbfi4uI0ZswYVa9eXV26dNGhQ4c8XVKWER0drTfffFMtW7ZUnz59CI+pVLt2bdWvX1/jx4/3dCmZgr+/v55++mlNmDBB8fHxni4n0/nll19UpUoVZc+eXSEhIZo9e7anS8p0+vXrpx9//FE7duzwdCkZUr9+/TRp0iQ+GErG2rVr1aZNG+3du1dly5bVP//8o06dOhG8Xez7779X+/bt9fDDD2vu3LmeLiddI3TD47766isNGjRInTt3VuHChXXffffpiy++8HRZ6dJTTz2lFStW6IknntCBAwd01113adu2bZ4uK9OLjo5WixYttHr1arVq1UpHjx5VrVq1tG7dOk+XlqEMGjRIX3zxBdP8XKRfv346duyYFi5c6OlSMpUtW7bo4Ycf1rBhwxQeHq5HH31UnTt31vbt2z1dWqZSo0YNNWrUSO+9956nS8mQevToobi4OM2YMcPTpaQ7a9eu1cMP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LRszA//l+qnmBO+0e/fddy1XrlwWGBho+fPnt2XLljmOffXVV1asWDGTZAEBAda3b19uFUkGoRu3xcKFCy0kJMR+++03i4yMtLCwMMuTJ481a9bMrl69amb/F7xbtWrl4Wo9a8CAAXbfffdZeHi4HT161IYOHWpeXl42cuRIR5+E4P322297rtBMav369ZYnTx6rWLFioimRZtdGaiMiIvgFnoSE4F24cOGbri8wceJEVt2+gb1795qPj48tXbrUli9fbrVr17aqVata//79LSAgwGbPnu3U/59//jFJdu7cOQ9VnPGMGTPGWrdu7ekyMo3Y2Fjr3Lmz5c2b1z755BNr0qSJ0/GZM2feMHi3aNHCXn311dtRarpXokQJ+/LLLx2PL126ZK1bt042eMfFxVlgYGCiFbszo/j4eJs8ebLjvePNELxvzZ49e6xEiRJ26NAhu3r1qj3zzDPm7+9v3377raNPXFycRUREELZvgtANl7p69WqSQaVevXqJtlzZvHmzZc+e3Sk4XrlyJcu8aYyMjEzUdv78efPz87Ndu3Y5tU+aNMm8vLycpu6dOHGCUS0XOXfunO3evdvxOCF4d+rUiV/SN7F//347deqU43FC8C5VqlSywfvcuXNWrlw5mz59+u0qM0MaNWqUeXt7W9GiRe2TTz5x/F1s166djR492qlvly5d7L///a8nysywnn76aWvbtm2Sx5YsWcK//TRICN5eXl720EMPJTqeXPA+ceKEhYSEsAq3XZtyL8k2bdrk1H7+/HkrWbJkksF748aNljdvXsf2TZlZeHi4BQUFWYcOHZLtExMTY0OGDLHTp0+b2f8F78GDB9+uMjON6dOnJ9rmc8iQIYmCN26O0A2XevLJJ6158+aJgnfZsmXtgw8+SNR/2LBhVqVKldtVXroRExNjlSpVshEjRji1R0REmCTHys/Xq1evnj3zzDO3q8QsZcSIEVawYEHbvn27oy0hePPpeNJ2795t1atXN29vb/P29rYuXbrYhQsXzCxlwTupHQuyuuPHjyfar/jfIweHDx+24ODgRP9HrFu3jm3YUumLL76w7NmzJzlyWK1aNTt//rwHqsr4EoK3r6+v/e9//0t0fObMmZYzZ06n++M3bdqUaLHArKx06dL2wgsvJGofNGiQ5cuXz2rXru3UPmPGjCwVgLZt22bLli2zlStXJhrxjomJsfbt21vr1q0dW4SZXZuyz6JpKTdp0iQrVaqUFShQwHr37p3oOME79QjdcKk///zTQkNDbceOHRYbG+to79Wrl1WoUCHRm5h58+ZZmTJlbneZ6cL8+fOtVq1aTvdlx8fHW9myZZMcserfv7/16tXrdpaYZcTExFi7du0I3il06tQpK168uH388cd29epVW7FihXl5edlHH33k6JMQvENDQ53+L0Bi58+ft06dOpmXl5d5eXlZu3btEs34uXz5ss2dO9dCQkLsww8/9FClGVtMTIzTm+6YmBirU6eOlS5d2v744w9H+1tvvWVNmzb1RImZxvVTza+foZXg+PHjHqgq4wgLCzNvb2+bO3euU3u7du1sypQpdvjwYQ9Vln6cP3/egoODrXXr1k7Bu1OnTokCN1Jn+vTpVq5cOZs8ebK1adPGvL29benSpYn6DRkyhO3qUoHQDZeLi4uzjz/+2Fq0aOEY8Y6IiLCgoCC77777HFNR4+PjrX379vbcc895sFrPiouLsw4dOjiNeC9ZssS8vb1t0KBBjrASGRlppUuXTtECVUibmwVvPs39P2PGjHFsp3Tu3Dm7++67bcCAAYn6nT9/3tavX3+7y8tQoqKirF69eta9e3c7efKk7d692wIDA61atWpO0/YHDRpkPXr04Hqm0apVqyw4ONgkWeXKlR2j2ydOnHDse1y/fn0LDQ218uXLs/1aKvzzzz/WpUsXq1WrlvXu3dtxe9TNgjeu2bJli/Xs2dNat25tn3zyieP3/vPPP29eXl7Wu3dvmzdvnj377LNWoUIFu3jxoocrTj+2bdtmQUFBTsF7zZo1BO5b8Pfff9udd95pe/bscbQNGTLEsmXLluSaAcywSjlCN1xuz5499ueff1qRIkWcpppv2bLFihcvbnnz5rX27dtbjRo1rH79+o4pqVlNdHS07d+/3+bPn29+fn5OwXvGjBmWLVs2K1WqlHXq1MmKFy+epT+ccLVz585Z//79E828iImJsYcffjhR8D5y5MjtLjFd69atm02YMCHJwL169WqbNWuWB6vLOK5evWr169e3/v37O9r69+9v9erVszvvvNOqV6/uFLyRNocOHbJChQrZokWL7M8//7S2bdtavnz5HPfMxsfH29KlS+2NN96wmTNnJrkuCZJ2/PhxCwkJsb59+9rbb79tNWvWtICAAFuwYIGZ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HjyYEUQXWrZsmVWuXNliY2MtPj7e+vXrZw0bNkw0RSomJsYWLlzomSLTiddff91y5MhhPj4+juBtdu1NzXfffWfNmzc3b29va9OmjVWrVs0aN27swWrTt9jYWHvnnXcsOjrasWfx9QtK9u/f38qWLZtkAPz5559vd7mZwu+//24FCxa0ESNG2COPPGKSkgzXb731loWEhGTpWVepdfXqVfvoo4/My8vLevToQfBOpaVLl1qBAgUse/bsJslq1aplf/75p+M4wRueMmHCBJNkffr0cdrL/OrVq9a9e/dkAznch9ANJ19++aWFhITYqFGjrFatWpYjR45EnzImBO/mzZt7psh0asKECVa2bFmnwA33effdd61nz55JBu6zZ8/aa6+95uEK049jx45ZtmzZHNOcrw/eCXbu3Gl9+vRxvHlk//LEYmNjrWPHjta8eXO7dOmSRURE2OjRox3HX3zxRatTp45FRUVZ7969GXl1gePHj9ujjz5qs2bNcrS9+eab5uvrm+R0/bNnz97G6jK2PXv2WIUKFax+/fpWu3Ztk0TwToVdu3ZZvnz5bOXKlWZ2bRG/mjVrWsGCBe2ff/5x9Js4caKVKFGCe2Zx273xxhvm7e1tJUuWtBdeeMGGDRtmFSpUsAcffNAuXLjg6fKyHEI3HE6ePGnlypVzrEZ69epV69ixY5JbCcTGxrKv5L9ERUVZnjx5bNSoUZ4uJdM6d+6c4432woULrVixYvb4448nGuGePn26Pfvss54qM13q3r27Pf300/bVV18lG7zNrm3F1KBBgyT3ls/K/h24/23FihVWqFAhx20Mv/zyi2MRyusXoETK7d2713LmzGmBgYFOIcbs2qh2csEbNxcXF2cVK1a0d99919G2bNkyCwwMTBS8+/fvz/aWSRgwYIB1797dqe3ixYtWtWpVa9asmVM7gRue8vvvv9sTTzxhjRo1skcffdTmzZvn6ZKyLEJ3FnT16lWnUQOzawEmKCjIChYs6NSeMKrNHn4pM3DgQGvQoIGny8i0pk2bZvnz57cLFy5YdHS0VaxY0XLkyGEHDhxw9Dl48KAVK1YsS/99jY6OTtS2ZcsWy5kzp509e/amwXvBggWWO3dubof4/5IL3P/884/jNpsnnnjCnnzyScexb775xu677z7buHHjba83M0nY73zMmDGJjiUE7/nz53ugsoxt9+7dJsnOnTvn1L5y5Urz9vZ2Ct64Jioqymnr1J49e1rbtm0T9Vu5cqVJYgFVAE4I3VnQ2rVrzc/Pz15//XVHW8I+fZISfaJ9ffD+976TcLZ//37z8fGx7777ztOlZEpXrlyxwoULO/aD3717txUpUsQKFy5sgwYNsueff94KFChgEydO9HClnpOwaNq9995r33zzjdMb50aNGjkWR7xR8N6wYYNly5YtyfCeFc2cOdMk2Ycffuho++eff6xEiRKOezXHjh1rwcHBtnnzZtuyZYuVLVs2y68l4Co3Wv194sSJTvfQImWOHTtmkhxTo6/XtGlTk+T0IVJWduDAAevQoYOVKlXKvvnmG0f7V199ZX5+frZhwwan/kePHjVJWXrxTgCJEbqzqIULF9rGjRudFvZJCN7JTScfMWIE98ulQMIWanCPN99804oVK+YIhMePH7cXX3zRGjVqZP/973+z/GJVw4YNM0l27733WvHixa18+fL20Ucf2YULF2zhwoUWEhLiGK1JCN4vvvii0zkaN25sH330kSfKT7eef/558/Lyss8++8wRuK8P4ZcvX3Z8cBkQEMD1S6Po6GjbuHFjounkbLvmeq1bt7aKFSsmGu1u166dDR482Pz9/bP8B0c7duyw4OBgGzlypMXGxjodi4+Pt+bNm1twcLDT750RI0bYvffee7tLBZDOEbqzsL1795qfn59TQLxR8EbKHD58mGm5afTvkYFz584lWtArKirK8uXLZ1OnTr2dpWUYcXFx1q1bNwsICLBFixY5diMIDAy0wYMHW758+eyrr75y9J89e7b99NNPTufgw7WkJQTvggULOgXu64WHh3P/ZhqtWLHCChcubJJMkjVp0sQOHjzoOE7wvjV//fWX/f33347HR44csZIlS1poaKitX7/ezMwWLVpkhQoVsjNnztgTTzxhrVu39lS5HnflyhUrV66cffbZZ8n2OX/+vD344IMmyerUqWM1atSw8uXLW3h4+G2sFEBGQOjO4ubPn0/wRroQHR1tJUuWdPq7+Morr5iXl5fdf//9TsHwpZdesgoVKnDPYTKuD95Lliwxs2u3lbRr1878/Pxs9uzZHq4w47p+xBuus2fPHgsMDLTvvvvOYmNjbc2aNXbHHXdY8eLF7dChQ45+o0ePthIlSiS5mB2StnfvXqtRo4bjw4y77rrL8bv90KFD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0KFDCdxABpawQ8asWbPUqVMn3XfffXr11Vf1ww8/6IsvvtDevXu1e/duDRw4UP/97389XW66duLECTVq1EhVq1bV6dOn9ccff2jfvn36/vvvHX18fHw0Y8YMtWrVSi1atEi0qjkA4PZipDuTiI2NVZkyZfTUU08pPj5ekyZNUnR0tPr27aunnnpKhQsXdvRNGPHu1auX3nzzTQ9WjaymRYsWio6OVpEiRbRgwQLVrl1bAwYM0COPPOKYrhcREaERI0boxx9/VK5cuTR48GD17t3bw5UDcIWEEe/atWvr559/dkw1R8qcOHFCTZo00SOPPKIxY8Y42qtXr6527dopLi5OjRo1ctyrnTDivXLlSu3bt88xgwgAcHsRujORt956SzNnztS2bdsUGxurhQsX6r333tPvv/+ujh07asCAAbrrrrskSbt27VKRIkW4hxu31ffff6+OHTvq0KFDunDhgiZNmqRPP/1U2bJlU//+/dWnTx+n+7kBZD7/nmpO8E65559/Xu+//75++OEHNWvWTJI0b948de7cWa1bt9bhw4e1fv16jRkzRi+//LKka8F727ZtqlGjhidLB4AsjdCdiZw9e1YhISFatGiRmjZtqosXL6pVq1YqWbKkrly5orlz56phw4Z6++23E+03CdwOZqbQ0FA9+eSTGjBggCTpp59+0oMPPqhy5crp77//Vo8ePfTcc8+pQoUKni0WgNsQvNMmJiZGHTp00LJly/Ttt98qOjpajz32mObNm6dGjRrJzNS3b1+FhYXp8OHDKlSokKdLBgCIe7ozlcDAQPXo0UPvv/++I3BXqFBB06dP15w5c7R582ZVqlRJFStW9HSpyKK8vLz03HPP6cMPP1R8fLx+/fVXdezYUQsXLtSWLVsUFhamFStWaO7cuZ4uFYAbJdzj/dNPP+no0aOeLifD8PPz09dff637779frVu31mOPPaZvv/3WsauDl5eXXnjhBcXGxurMmTMerhYAkICR7kzmr7/+UmhoqGrUqKEaNWpo8uTJbL+CdOXSpUsKCQlR3759NWXKFM2cOVPNmzd3HI+Pj2fUC8gioqOjFRAQ4OkyMpx/j3gnTDWXpLCwML355pvavXs3/5cCQDpB6M6EHnroIUVGRmrNmjUEbqRLL730kt555x0tWbLEKXADAFImqeD966+/qk2bNvr2229Vt25dT5cIAPj/+Ag0Exo4cKA2bdrElD2kW08//bQkKU+ePB6uBAAypn9PNX/33XfVtm1bffnllwRuAEhnGOnOpKpVq6b69etr0qRJni4FSFKXLl107NgxrVy50tOlAECGdf2I96JFi5g9BADpEKE7k5o2bZo+++wzrVu3ztOlAEnatGmTateurR07dqhSpUqeLgcAMqyYmBht377dsS0oACB9IXRnUtHR0bp8+TJ7HiNdW7BggR555BFPlwEAAAC4DaEbAAAAAAA3YSE1AAAAAADchNANAAAAAICbELoBAAAAAHATQjcAAAAAAG5C6AYAAAAAwE0I3QAAAAAAuAmhGwCALCYyMlJff/214uPjPV0KAACZnq+nCwAAALcuLi5Of/zxh8LDw5U3b16VL19exYsXT7LvqFGjNHXqVEVGRqpPnz63uVIAALIWLzMzTxcBAADSbt68eRo4cKB8fHxUrVo1Xbp0SXv37lXp0qX1wQcfqEqVKo6+//zzj/7zn/9o4cKFat26tbZu3apcuXJ5sHoAADI3QjcAABnYwoUL1a5dO02cOFF9+/aVl5eX49jPP/8sHx8f1a9f39E2depUnTx5UnfccYfWrVunpk2b6v7773ccX7lypYKDg1W8eHFt2bJFklS3bl1lz57d6efGx8dr06ZNOnLkiMqWLesU7K8/T+HChbVhwwblypVLjRo1kiSdOHFCGzZskK+vr+rXr6+8efO6/LoAAJBeELoBAMjAypUrp8qVK+ubb765ad/Dhw+rdevWunDhgu644w5t2bJFlSpV0oIFCxyhumHDhvL29taRI0d0xx136M8//5QkbdiwQfnz50/Veby8vBQREaEqVaqoQYMGGjp0qMLCwtS/f3/Vrl1bly9f1l9//aWvvvpKDzzwgHsuEAAAHsZCagAAZFD//POP/vnnHz388MMp6t+9e3fdfffd2rNnjxYtWqS//vpLp06d0ptvvpnovOvWrdN3332nnTt3ysw0efLkVJ9n165dWrdunRYvXqyhQ4fq0KFD6t+/vz788EOtWbNGv/32m/r166fevXvr4sWLt35BAABIhwjdAABkUMeOHZMklShRwql9/vz5mj17tmbPnq1ffvlFkhQeHq5Vq1apbNmymj9/vubOnatvv/1WZcqU0erVq52e365dOxUqVEiS5O/vr3r16jlGvFN7nqJFizoeL1q0SHnz5lWvXr0cbS+99JKOHz+uNWvWuOiqAACQvrB6OQAAGVTCAminT592al+8eLGuXLmin3/+WfXq1VODBg104MABSdIvv/yijRs3Ovp6eXmpVq1aTs9PmEaeICAgQBcuXJCkVJ2nyP9r745d6e/iOIC/i+7kmq7hF+VuUhjuQMkuQtQdrBaTpGQzyOYfkJSS8g/o/gMmzIpB0U3Z3GwseDY9t6eePD+/b/H0em3fzzmdc75ne/c9p++vX23PzWYz1Wq17d55uVxOT09Pms3mZ18bAH4UoRsAfqjBwcF0dXXl4uIi9Xr9o354eJgkmZmZ+ah1d3cnSTY3N1Or1X57zv8yzt/DdZJUKpW0Wq222vv7e56enlKpVH57TQDwnTleDgA/VKlUysrKSnZ3d3N1dfWvfYeHh9Pb25u9vb1/tD08PHx6zq+MMzExkZubm1xeXn7UTk5O8vb2ltHR0U+vAQB+El+6AeAH297eTrPZTK1Wy9LSUkZGRlIqlXJ9fZ2zs7MsLy8nSTo6OnJwcJCFhYU8Pj5mcnIyrVYrjUYj9Xo9a2trn5rvK+OMj49ncXEx09PTWV9fz/Pzc3Z2drKxsZH+/v4/sBsA8P34ZRgA/A+cn5+n0Wjk/v4+5XI51Wo1s7OzGRgYaOt3d3eXo6Oj3N7epq+vL3NzcxkbG/to39raytDQUNtx9f39/by8vGR1dfVL4yTJ6+trjo+Pc3p6ms7OzkxNTWV+fv4P7wYAfB9CNwAAABTEnW4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFOQvhuEki1PqNGUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Selecionando os 10 gêneros com maior receita média\n", + "top10 = receita_genero.head(10)\n", + "\n", + "# Criação do gráfico de barras\n", + "plt.figure(figsize=(10,6))\n", + "\n", + "plt.bar(\n", + " top10[\"Main_Genre\"],\n", + " top10[\"RevenueMillions\"]\n", + ")\n", + "plt.title(\"Top 10 Gêneros por Receita Média\")\n", + "plt.xlabel(\"Gênero\")\n", + "plt.ylabel(\"Receita Média (Milhões USD)\")\n", + "plt.xticks(rotation=45)\n", + "plt.tight_layout()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "ab57d1a5", + "metadata": {}, + "source": [ + "# Uso de IA \n", + "\n", + "Durante a realização do desafio, utilizei ferramentas de Inteligência Artificial como apoio pontual para esclarecer dúvidas específicas e acelerar algumas etapas de desenvolvimento. A IA foi utilizada principalmente para: \n", + "\n", + "Ajudar na conexão com o banco de dados \n", + "\n", + "Auxiliar na implementação da validação e padronização de datas no Case 1; \n", + "\n", + "Revisar e gerar comentários de código em alguns trechos da solução; \n", + "\n", + "Ajudar na interpretação da sigla \"TM\" no Case 2, sugerindo que poderia representar Ticket Médio; \n", + "\n", + "Auxiliar na formatação final dos valores da coluna TM para o padrão apresentado no desafio; \n", + "\n", + "Esclarecer dúvidas sobre filtros de datas em SQL; \n", + "\n", + "Apoiar a extração do gênero principal da coluna Genre no Case 3; \n", + "\n", + "Auxiliar na configuração de alguns parâmetros de visualização utilizando Matplotlib. \n", + "\n", + "Revisar os erros ortográficos no PDF \n", + "\n", + " \n", + "\n", + "Toda a lógica de negócio, modelagem das consultas SQL, definição das transformações, estruturação das soluções, interpretação dos dados, criação dos gráficos e validação dos resultados foram realizadas por mim. A IA foi utilizada como uma ferramenta de apoio técnico, semelhante ao uso de documentação, fóruns ou materiais de consulta, e não como substituta do raciocínio utilizado na resolução do desafio." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}