diff --git a/isaque_looqbox_challenge.ipynb b/isaque_looqbox_challenge.ipynb new file mode 100644 index 0000000..8324f8b --- /dev/null +++ b/isaque_looqbox_challenge.ipynb @@ -0,0 +1,479 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "id": "12e6eef3-32fb-4053-be4e-6bcf85aff741", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting sqlalchemy" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "[notice] A new release of pip is available: 25.2 -> 26.1.1\n", + "[notice] To update, run: python.exe -m pip install --upgrade pip\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " Downloading sqlalchemy-2.0.50-cp312-cp312-win_amd64.whl.metadata (9.8 kB)\n", + "Collecting pymysql\n", + " Downloading pymysql-1.2.0-py3-none-any.whl.metadata (4.3 kB)\n", + "Collecting greenlet>=1 (from sqlalchemy)\n", + " Downloading greenlet-3.5.1-cp312-cp312-win_amd64.whl.metadata (3.9 kB)\n", + "Requirement already satisfied: typing-extensions>=4.6.0 in c:\\users\\ferna\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from sqlalchemy) (4.15.0)\n", + "Downloading sqlalchemy-2.0.50-cp312-cp312-win_amd64.whl (2.1 MB)\n", + " ---------------------------------------- 0.0/2.1 MB ? eta -:--:--\n", + " ---------------------------------------- 0.0/2.1 MB ? eta -:--:--\n", + " --------- ------------------------------ 0.5/2.1 MB 2.8 MB/s eta 0:00:01\n", + " ------------------- -------------------- 1.0/2.1 MB 2.6 MB/s eta 0:00:01\n", + " ----------------------------- ---------- 1.6/2.1 MB 2.7 MB/s eta 0:00:01\n", + " ---------------------------------------- 2.1/2.1 MB 2.7 MB/s 0:00:00\n", + "Downloading pymysql-1.2.0-py3-none-any.whl (45 kB)\n", + "Downloading greenlet-3.5.1-cp312-cp312-win_amd64.whl (238 kB)\n", + "Installing collected packages: pymysql, greenlet, sqlalchemy\n", + "\n", + " ---------------------------------------- 0/3 [pymysql]\n", + " ------------- -------------------------- 1/3 [greenlet]\n", + " ------------- -------------------------- 1/3 [greenlet]\n", + " ------------- -------------------------- 1/3 [greenlet]\n", + " ------------- -------------------------- 1/3 [greenlet]\n", + " ------------- -------------------------- 1/3 [greenlet]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " -------------------------- ------------- 2/3 [sqlalchemy]\n", + " ---------------------------------------- 3/3 [sqlalchemy]\n", + "\n", + "Successfully installed greenlet-3.5.1 pymysql-1.2.0 sqlalchemy-2.0.50\n" + ] + } + ], + "source": [ + "!pip install sqlalchemy pymysql" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "66609a93-580f-4cc5-a91c-098d9354b327", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('IMDB_movies',)\n", + "('data_product',)\n", + "('data_product_sales',)\n", + "('data_store_cad',)\n", + "('data_store_sales',)\n" + ] + } + ], + "source": [ + "from sqlalchemy import create_engine, text\n", + "import pandas as pd\n", + "\n", + "engine = create_engine(\"mysql+pymysql://looqbox-challenge:looq-challenge@35.199.115.174/looqbox-challenge\")\n", + "\n", + "# Ver todas as tabelas do schema\n", + "with engine.connect() as c:\n", + " resultado = c.execute(text(\"SHOW TABLES\"))\n", + " for tabela in resultado:\n", + " print(tabela)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "3d545c6c-f991-4367-8dff-6c700518a595", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " product_cod product_name product_val\n", + "0 301409 Whisky Escoces THE MACALLAN Ruby Garrafa 700ml... 741.99\n", + "1 176185 Whisky Escoces JOHNNIE WALKER Blue Label Garra... 735.90\n", + "2 315481 Cafeteira Expresso 3 CORACOES Tres Modo Vermelho 499.00\n", + "3 100280 Vinho Portugues Tinto Vintage QUINTA DO CRASTO... 445.90\n", + "4 320046 Escova Dental Eletrica ORAL B D34 Professional... 399.90\n", + "5 190817 Champagne Rose VEUVE CLICQUOT PONSARDIM Garraf... 366.90\n", + "6 153795 Champagne Frances Brut Imperial MOET Rose Garr... 359.90\n", + "7 311397 Conjunto de Panelas Allegra em Inox TRAMONTINA... 359.00\n", + "8 147706 Whisky Escoces CHIVAS REGAL 18 Anos Garrafa 750ml 329.90\n", + "9 154431 Champagne Frances Brut Imperial MOET & CHANDON... 315.90\n" + ] + } + ], + "source": [ + "query1 = \"\"\"\n", + "SELECT product_cod, product_name, product_val\n", + "FROM data_product\n", + "ORDER BY product_val DESC\n", + "LIMIT 10\n", + "\"\"\"\n", + "\n", + "df1 = pd.read_sql(query1, engine)\n", + "print(df1)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "5912ebd7-37da-46d8-9d90-687b8b3067a6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 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\n" + ] + } + ], + "source": [ + "query2 = \"\"\"\n", + "SELECT DISTINCT dep_name, section_name\n", + "FROM data_product\n", + "WHERE dep_name IN ('BEBIDAS', 'PADARIA')\n", + "ORDER BY dep_name, section_name\n", + "\"\"\"\n", + "\n", + "df2 = pd.read_sql(query2, engine)\n", + "print(df2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "21eb6abe-5a0b-4664-8f6b-11da656a783e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " business_name total_vendas\n", + "0 Farma 81776691.73\n", + "1 Varejo 81032347.65\n", + "2 Atacado 80384884.60\n", + "3 Proximidade 80171122.80\n", + "4 Posto 32072326.40\n" + ] + } + ], + "source": [ + "query3 = \"\"\"\n", + "SELECT \n", + " sc.business_name,\n", + " SUM(ss.sales_value) AS total_vendas\n", + "FROM data_store_sales ss\n", + "JOIN data_store_cad sc ON ss.store_code = sc.store_code\n", + "WHERE ss.date BETWEEN '2019-01-01' AND '2019-03-31'\n", + "GROUP BY sc.business_name\n", + "ORDER BY total_vendas DESC\n", + "\"\"\"\n", + "\n", + "df3 = pd.read_sql(query3, engine)\n", + "print(df3)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "5b08b7db-2f00-4977-9439-cbd350c08153", + "metadata": {}, + "outputs": [], + "source": [ + "def retrieve_data(product_code=None, store_code=None, date=None):\n", + " \n", + " query = \"SELECT * FROM data_product_sales WHERE 1=1\"\n", + " \n", + " if product_code is not None:\n", + " query += f\" AND product_code = {product_code}\"\n", + " \n", + " if store_code is not None:\n", + " query += f\" AND store_code = {store_code}\"\n", + " \n", + " if date is not None:\n", + " query += f\" AND date BETWEEN '{date[0]}' AND '{date[1]}'\"\n", + " \n", + " return pd.read_sql(query, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "b40d0991-244c-4927-880d-b7ef7ded4014", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " STORE_CODE PRODUCT_CODE DATE SALES_VALUE SALES_QTY\n", + "0 1 18 2019-01-01 708.5 65.0\n", + "1 1 18 2019-01-02 1297.1 119.0\n", + "2 1 18 2019-01-03 1144.5 105.0\n", + "3 1 18 2019-01-04 1090.0 100.0\n", + "4 1 18 2019-01-05 893.8 82.0\n" + ] + } + ], + "source": [ + "# Teste\n", + "df_teste = retrieve_data(product_code=None, store_code=1, date=['2019-01-01', '2019-01-31'])\n", + "print(df_teste.head())" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "8839e1fb-4507-4fb7-9f07-62e806bd49b5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Loja Categoria TM\n", + " Bahia Atacado 15.39\n", + " Bangkok Posto 13.67\n", + " Belem Proximidade 15.37\n", + " Berlin Proximidade 15.39\n", + " Buenos Aires Atacado 15.39\n", + " Chicago Varejo 15.53\n", + " Dubai Atacado 15.39\n", + " Hong Kong Farma 26.35\n", + " London Farma 28.99\n", + " Madri Farma 29.03\n", + " Miami Posto 13.67\n", + " New York Proximidade 15.39\n", + " Paris Proximidade 15.39\n", + "Rio de Janeiro Farma 29.59\n", + " Roma Varejo 15.39\n", + " Salvador Atacado 15.39\n", + " Sao Paulo Varejo 15.39\n", + " Sidney Posto 13.67\n", + " Tokio Varejo 15.39\n", + " Vancouver Posto 13.67\n" + ] + } + ], + "source": [ + "query_lojas = \"\"\"\n", + "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", + "\n", + "query_vendas = \"\"\"\n", + "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", + "\n", + "df_lojas = pd.read_sql(query_lojas, engine)\n", + "df_vendas = pd.read_sql(query_vendas, engine)\n", + "\n", + "# Converter DATE para datetime e filtrar\n", + "df_vendas['DATE'] = pd.to_datetime(df_vendas['DATE'])\n", + "df_vendas = df_vendas[\n", + " (df_vendas['DATE'] >= '2019-10-01') & \n", + " (df_vendas['DATE'] <= '2019-12-31')\n", + "]\n", + "\n", + "# Juntar as duas tabelas\n", + "df_merged = df_vendas.merge(df_lojas, on='STORE_CODE')\n", + "\n", + "# Calcular TM por loja\n", + "df_tm = df_merged.groupby(['STORE_NAME', 'BUSINESS_NAME']).agg(\n", + " total_valor=('SALES_VALUE', 'sum'),\n", + " total_qty=('SALES_QTY', 'sum')\n", + ").reset_index()\n", + "\n", + "df_tm['TM'] = (df_tm['total_valor'] / df_tm['total_qty']).round(2)\n", + "\n", + "# Tabela final\n", + "df_resultado = df_tm[['STORE_NAME', 'BUSINESS_NAME', 'TM']].rename(columns={\n", + " 'STORE_NAME': 'Loja',\n", + " 'BUSINESS_NAME': 'Categoria',\n", + "})\n", + "\n", + "print(df_resultado.sort_values('Loja').to_string(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e4d5a1e1-a737-4821-983e-7b5c845a1855", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Id', 'Title', 'Genre', 'Director', 'Actors', 'Year', 'Runtime', 'Rating', 'Votes', 'RevenueMillions', 'Metascore']\n", + " 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 \n", + "1 2012 124 7.0 485820 126.0 65 \n", + "2 2016 117 7.0 157606 138.0 62 \n", + "3 2016 108 7.0 60545 270.0 59 \n", + "4 2016 123 6.0 393727 325.0 40 \n" + ] + } + ], + "source": [ + "df_imdb = pd.read_sql(\"SELECT * FROM IMDB_movies LIMIT 5\", engine)\n", + "print(df_imdb.columns.tolist())\n", + "print(df_imdb.head())" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "36021d9c-28ea-4225-ab77-fc607edfaecb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAjC1JREFUeJzt3QmcVfP/x/FPe9oX7SupSJTKklCEJCREKi1IC0V+flQUicoeQkoifilbWbKmUkmoSCGSpShr2ve6/8f7639uZ+7cqdk6d+ae1/PxuDVz752ZM2fO9v2cz+fzzROJRCIGAAAAAAAABChvkD8MAAAAAAAAEIJSAAAAAAAACBxBKQAAAAAAAASOoBQAAAAAAAACR1AKAAAAAAAAgSMoBQAAAAAAgMARlAIAAAAAAEDgCEoBAAAAAAAgcASlAAAAAAAAEDiCUgAAIOF++OEHK126tJ1xxhm2c+fORC9O6P38889WokQJK1u2rP3222+JXhwAAJCkCEoBAJCD3XHHHZYnTx6bPXu2Javt27fbJZdcYtWrV7epU6dawYIF0/21zzzzjFs/+t9Pz7Vo0eIgLG3yi0QidtVVV9lxxx1ntWvXtl69ellYfu/GjRvb2Wefbclo3bp1VrJkSbv55psTvSgAAEQRlAIAIA0//fSTC274HwUKFLAqVarYpZdeagsXLszyz1CwSd9Xwafctk4qVqxou3fvjvu+b775Jvq+mjVr7vd7Xnfddfb333/b22+/7QbNyDr9XZ5//nlr27at214LFSpkRYsWtTp16ljnzp1d8G/v3r1xv3bMmDG2bNkymzx5sk2ZMsXmzJnjvleymzhxoi1evNjuvPPOFM9369bNbccLFixI8by3fWvdavuN559//rFDDjkk+t54+77/UaxYMatWrZq1bt3aRo4caWvWrNlvMNb/yJs3r5UqVcpOPfVUmzBhQqqvKVOmjPXr188eeeQRlwkHAEBOkD/RCwAAQE5Xq1YtN5CXLVu22KJFi+yll16yadOm2YwZM+y00047aD9bAZsOHTq4LKKcJH/+/Pb777/bW2+9ZRdccEGq18ePH+8GyQei76FB+LvvvmuVK1fOtuVTUKxIkSIWRgo4tGvXzj7//HM79NBDrWXLllajRg0XhPrxxx/tnXfesf/973924YUXuuBUbLbQ1q1b3bZdqVIl95w+/uKLLyyZad0oMKyAzkknnZSh/UDlplqfCvjE0vPKBNT70grgKjvrvPPOcx9r3atccv78+e7vNHToULv33nutb9++cb9Wf9tTTjnFfazvv3r1anvttdfsyiuvtK+//truu+++FO+/4YYb7J577rG77rrLxo0bl+7fEwCAg4WgFAAAB3DEEUekymRSFsPAgQNt8ODB9uGHHx60n62ggh45zcknn2xLliyxp59+OlVQysvSOfPMMw+4bipUqGC33357ti/fkUceaWG0ceNGa9WqlX377beuTEvbrTJ1/Hbt2mWTJk2yN954I9XXK+PmP//5T4rnFHQ9mIHXnEBZesoCvPXWWzMcsFYgT5lJ8YJS2j/q1q3rPtbfJJ4mTZrEzZRUcElllPq+ynJToCmW9rEBAwakeE6/R/369e3RRx91WV/+v796hCkL64UXXrAHHnjA9Q0DACCRKN8DACATNFgUZU3FG4iqbEpla4ULF3ZlMwoUzJo1K8X7NBA9/fTT3cfKiPCX4mhgmVZPKa+ETmVF33//vcuKUZNwDVw1SFWwKB4FiBRc0Ps0OL3ssstcZoV6L8WWFh2IBrrK4Jo+fbr98ccfKV578803XQZUvEG0RwN5radmzZq5gbGymjQ413Np9cNRbyMFsfTe448/PlWWT3p6Sv31118uW+Swww5zZVfly5d3pZgqV8tMHysFDk444QS3TOXKlXO/s373eD766CNr06aN2x60XShwpoCcsmPSWv5ff/3VunTp4kollXl2oN5iyoxR8KNr164uIyY2ICUqQdXrKs/Lyt/Fv20qyNWwYUP385Rhdf3119u2bdviLqPKAc8//3wXbNXfQH2rbrvttlTrwV/aqswh9XpSeZp/W1Xmotah1qW3r2kda11nhIJK+r4XX3yxZVT37t1dJplK//y0HypbTa9nho4hL7/8svv4lltucb9reui4o0DYjh07bNOmTale1/au76VsTwAAEo2gFAAAWaCynFjXXnutC0woQNS/f39XmvPxxx+7zxXE8CjooOCANG/e3A2uvYcG3wei4JRKjRSwUTDkrLPOsg8++MAFumIDI++99577+Z9++qlrKn7NNde4Mi+V/qxfvz5Tv7t+prKinnvuuRTPK4Ch4IDKw+JR4KNTp04usPfnn39ax44d7eqrr3YDZT130003pXi/ghVaV08++aTLTFHAQ4NuBdW8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AAKP1WSsQQ4OulbDpluYvTs4/Y3EAQAAAABA7kX5HgAAAAAAAAJHphSSStgzzYRsMwAAAABAbkCmFAAAAAAAAAJHUAoAAAAAAACBIygFAAAAAACAwBGUAgAAAAAAQOAISgEAAAAAACBwBKUAAAAAAAAQOIJSAAAAAAAACBxBKQAAAAAAAASOoBQAAAAAAAACR1AKwEH3+uuvW8OGDa1o0aJWuXJlGzNmTNz3LVq0yE455RQrUaKEHX744TZx4sQUr7///vvWqFEjK168uNWrV8/eeeedgH4DAAAAAEB2IygF4KBS4KhPnz42atQo27hxo3311VfWokWLVO9bv369nXvuuda5c2f7559/7IUXXrC+ffvavHnz3Os//PCDtWvXzu68807bsGGD3XvvvXbxxRe755NddgT15s6da8WKFUvxyJs3r/Xr1y/A3wQAAAAA9iEoBeCgGjx4sA0ZMsQFovLly2elS5e2I488MtX75s+fb4UKFbJevXq595144ol20UUX2VNPPRUNbilL6rzzznPBFP1/wgknpMqmSjbZFdQ79dRTbfPmzdHHypUr3Xru0KFDAn4rAAAAACAoBeAg2rJli8ve+fXXX61OnTpWsWJFa9++va1duzbVe/fu3WuRSCTVc19++WW6Xk9W2RXUi/Xss89a7dq17eSTTw7gtwAAAACA1AhKATholLGjQNK0adNcP6jvv//eBU6UzROradOmLog1evRo27Vrl3300Uc2depUlx0kZ511ln322Wfue+3evdv9r/d4ryej7AzqxXr66aftqquuOmjLDgAAAAAHQlAKwEGjvkWivkU1atRwnw8dOtRmzZrlAi5+ZcuWtTfeeMMmTZrkgi8DBgyw7t27u+elbt26NmXKFPf15cuXt/Hjx7vSM+/1ZJSdQT0/9ZdSL64uXboE9JsAAAAAQA4LStWsWdPy5MmT6nHttdcmcrEAZJNSpUpZ9erV474Wm9UjzZo1c2Vof//9twuc/Pbbb9a8efPo623btrXPP//c1q1b5wJYK1asSPF6ssnOoJ6fAnoXXHCBlStXLrDfBQAAAAByVFBKpTgqQ/EeygQQlacASA7XXHONPfroo64Ebdu2bW72vJYtW0YDLn4KOO3YscO9b9y4cTZ79my74YYboq8vXLjQle5t2rTJfR8Fp7p27WrJKruDeqLMqZdeesmuvvpqC5P0zmD49ddfu+1TvbsU3NP2u3XrVvfaqlWrUs1gmD9/fhfgAwAAAJDLglK6S6+Lfu/x5ptvWq1atZI68wEIG2XsaJDfoEEDq1atmhvgP/fcc+611q1b2/Dhw6PvfeSRR6xChQru2KDAycyZM10AwTNw4EArU6aMVa1a1fVKUsaQggzJLDuDeqJZ+ZQ9dfbZZ1tYpHcGQ+nYsaMrFf39999t6dKltmTJEhs2bJh7TQFC/wyGCooqcBiGGQyzI6gnWu8qQfUH9tasWRPgbwIAAICcJL/lEDt37rTnn3/ebrzxRlfCByA5aCa4Bx54wD1ivf322yk+nzBhgnukxcumDFtQT8EPBfXk9NNPTxHUO/XUU23QoEHRoJ76SCmbTLPqxQb1vNI9lfXlzRueloL+GQxFARM94lGvrccff9wKFizogqPKgvr444/jvle9vtRMXrMchiGop3O0tjcF9hS0Syuop21P+/aGDRvsvPPOc0G9ESNGRN9zzz33pAqWAgAAIJxyTFBKF/fr16+3bt267fd9ygLQw5PMM28BQHYG9eTTTz+1MPFmMDz33HPdDIY6ZyiwogBepUqVUr3/pptusokTJ9pxxx3ngioK8vXo0SPu91aAr1OnTla4cGFLZgcrqAcAAADkmFvlurjXXf/Yu/qxdLe1ZMmS0YfKgQAAyOoMhqLz0Lx586x48eIuaKVzzJVXXpnqfT///LPNmDEj6XtzeUE9lY8qqKeSPPV9VB/IeLygnkpI1dNMQb3zzz8/xXvuuusuV4arwJ/eCwAAgPDKEZlS3sX9q6++esD3qqeMSvw8uutNYArIPq2GTbcwe3dwm0QvAg7iDIaiGQxr167tAi7+nmQKYJ155pmub1fv3r3d63379nUBrClTpqT4vspIU1DFK6sMS1BP/ch69erl1skHH3wQN6in8lAF9fbs2WMXXnhhiqCebizVq1fPihQp4spLL730Uvfedu3aBfybAQAAICfIEUEpXdyXL1/e2rQ58GBQd7j1AICciKBem1w7g+HKlStdho8CWOptqBK0nj17ukCLn/pI6bylmyTJLruDek2bNo2+v1WrVm796jWCUgAAAOGU8PI97+Je07pram0AABIxg+GRRx7pnlNPJDWL37Rpk5vFUBlRfsoY+uuvv+zyyy+3ZJfZoJ4Ceuo7paDT9OlpB2rD1HAfAAAAqSX8alBle6tWrYrbswMAgOyYwVBBKJXaqdx769atKWYwHD58uPtYAak33njDXnjhBTv00EOtZs2abgKOZ599NlUPxEsuucT1NQyD7ArqaV2+9dZbbv2rtE/lf2PGjLGLL744Qb8ZAAAAEi3hqUlnn312qrutAAAkYgbDZs2auUbn+/Piiy9a2IJ669ati/bPOv3001ME9TSb4aBBg6JBvVtuucVuvfVWt961Pr2g3q5du1zpX4cOHdznCvo9+OCDrnE6AAAAwinhQSkAAJD8Qb1y5crZJ598ctCWEwAAALlPwsv3AAAAAAAAED5kSgEAcoywz16YE2cwBAAAAA4WglIAACSRsAf2cmJQ7/XXX7chQ4bYihUrXIN8fdyrV6+4733qqafsvvvus19++cWVPD788MPWtm3baB+u33//3ZVUimYtVgN5AACA3IqgFAAAwEHyzjvvWJ8+fez55593TeE3btzoAkvxjB071h566CGbPHmyNWzY0P744w/bsmVLivdodsgLL7wwoKUHAAA4uAhKAQAAHCSDBw92mVEtWrRwn5cuXdo9Yu3Zs8e9b+LEiXbccce55ypUqBD48gIAAASJRucAAAAHgbKcFi1aZL/++qvVqVPHKlasaO3bt7e1a9emeu+3337rMqgWL17syvSqVq1qPXr0cJlVfj179rRDDz3UmjZtam+99VaAvw0AAED2IygFAABwEPzzzz8WiURs2rRp9v7779v3339vhQoVss6dO6d677p169z/M2bMsIULF9oXX3xhP/74o/Xv3z/6nueee849pyBX37597eKLL7bPPvss0N8JAAAgOxGUAgAAOAiKFSvm/u/Xr5/VqFHDfT506FCbNWtWql5R3nsHDhzoMqH00MdvvPFG9D3qSVWkSBEX2OrYsaOdf/759sorrwT8WwEAAGQfglIAAAAHQalSpax69epxX1MGlV/dunWtcOHCGfr+efOG5zJOMxiq+XvRokWtcuXKNmbMmLjvU+8uBe0U5PMea9asSfU+lUqWKVPGfU8AAJA44bmaAQAACNg111xjjz76qCu527Ztm915553WsmXLaGaU55BDDnFlfffcc48r+1u/fr37uG3btu71VatW2Zw5c2zHjh22a9cue/HFF+21114LxUx83gyGo0aNcj22vvrqq2jj+Hi03jZv3hx9KIgV67rrros2lAcAAIlD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UAoAAAAAAACBIygFAAAAAACSWrdu3axgwYJWrFix6OPjjz9O8/27du2y6667zkqXLm1lypSxvn372u7duwNd5jAgKAUAAAAAAJJenz59bPPmzdFH06ZN03zvXXfdZfPmzbOvv/7avvrqK5s7d64NHz480OUNA4JSAAAAAAAAPk8//bTddtttVqlSJfe49dZbbfz48YlerKRDUAoAAAAAACS9iRMnulK8o48+2h544AHbu3dv3Pf9888/9ssvv1jDhg2jz+njVatW2YYNGwJc4uRHUAoAAAAAACS1fv362bfffmt//vmny3h6+OGH3SMelfZJqVKlos95H2/atCmgJQ4HglIAAAAAACCpNWrUyMqVK2f58uWzk046yQYMGGBTpkyJ+141QRd/VpT3cfHixQNa4nAgKAUAAAAAAEIlb960wyGaca9q1ar2xRdfRJ/Tx9WqVbOSJUsGtIThQFAKAAAAAAAktRdffNE2btxokUjEFi5caCNHjrSLL744zfd3797d7r77bvvtt9/cQzPvXX311YEucxgkNCh1xx13WJ48eVI8jjzyyEQuEgAAAAAASDKjR4+26tWru/K7Tp06WZ8+few///lP9PVevXq5h2fw4MHWtGlTO+qoo9yjWbNmNmjQoAQtffLKn+gFUNf7GTNmRD/Pnz/hiwQAAAAAAJLInDlz9vv6mDFjUnxeoEABe+yxx9wDB0/CI0AKQlWsWDHRiwEAAAAAAIAw9ZRasWKFVa5c2Q4//HCXQrdq1ar9vn/Hjh2uDtT/AAAAAAAAQO6S0EypE0880Z555hmrW7eurV271oYOHWqnnnqqLVu2LM1pFkeMGOHeBwAAAAAAkkerYdMt7N4d3MbCJKGZUq1bt7b27dvbsccea61atbK33nrL1q9f77rip2XgwIG2YcOG6GP16tWBLjMAAAAAAACSoKeUX6lSpaxOnTr2/fffp/meQoUKuQcAAAAAAAByr4T3lPLbvHmzrVy50ipVqpToRQEAAAAAAECyBqVuuukm+/DDD+2nn36y+fPnW7t27Sxfvnx2+eWXJ3KxAAAAAAAAkMzle7/88osLQP39999Wrlw5O+WUU2zBggXuYwAAAAAAACSvhAalJk+enMgfDwAAAAAAgATJUT2lAAAAAAAAEA4EpQAAAAAAABA4glIAAAAAAAAIHEEpAAAAAAAABI6gFAAAAAAAAAJHUAoAAAAAAACBIygFAAAAAACAwBGUAgAAAAAAQOAISgEAAAAAACBwBKUAAAAAAAAQOIJSAAAAAAAACBxBKQAAAAAAAASOoBQAAAAAAAACR1AKAAAAAAAAgSMoBQAAAAAAgMDlz8oX//nnn/btt9+6j+vWrWvlypXLruUCAAAAAABAEstUptSWLVvsyiuvtMqVK9tpp53mHvr4qquusq1bt2b/UgIAAAAAACCpZCoodeONN9qHH35or7/+uq1fv949XnvtNffcf/7zn+xfSgAAAAAAACSVTJXvvfLKK/byyy9bixYtos+de+65dsghh9ill15qTzzxRHYuIwAAAAAAAJJMpjKlVKJXoUKFVM+XL1+e8j0AAAAAAAAcnKBU06ZN7fbbb7ft27dHn9u2bZsNHTrUvQYAAAAAAABke/neww8/bK1atbKqVatagwYN3HNLliyxwoUL27vvvpuZbwkAAAAAAIAQyVRQqn79+rZixQr73//+Z8uXL3fPXX755dapUyfXVwoAAAAAAADI9qCUFClSxHr06JHZLwcAAAAAAECIpTso9frrr1vr1q2tQIEC7uP9ueCCC7Jj2QAAAAAAABD2oNSFF15ov/32m5thTx+nJU+ePLZnz57sWj4AAAAAAACEOSi1d+/euB8DAAAAAAAAGZU3w18BAAAAAAAABJUp9cgjj6T7m/br1y+zywMAAAAAAIAQSHdQ6qGHHkrx+Z9//mlbt261UqVKuc/Xr1/vZuRTzymCUgAAAAAAAMiW8r0ff/wx+rj77rutYcOG9s0339i6devcQx83atTIhg0blt5vCQAAAAAAgJDKVE+pwYMH26OPPmp169aNPqePlU112223ZefyAQAAAAAAIAllKii1du1a2717d6rn9+zZY7///nt2LBcAAAAAAACSWKaCUi1btrSePXva4sWLo88tWrTIevfubWeeeWZ2Lh8AAAAAAACSUKaCUk8//bRVrFjRmjRpYoUKFXKPE044wSpUqGBPPfVU9i8lAAAAAAAAwjn7nl+5cuXsrbfesu+++86WL1/unjvyyCOtTp062b18AAAAAAAASEKZCkp5atasaZFIxGrVqmX582fpWwEAAAAAACBEMlW+t3XrVrvqqqusSJEidvTRR9uqVavc83379rWRI0dm9zICAAAAAAAgjEGpJ598MkVT84EDB9qS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8KDUZZddZn/++acNGTLEfvvtN2vYsKG98847qZqfAwAAAAAAIHkkPCglKtVLq1wPwVFZ5O23356qPBLpxzrMGtZf1rD+so51mDWsv6xh/WUd6zBrWH9Zw/rLOtZh1rD+sob1lxgJnX0PAAAAAAAA4ZQ30QsAAAAAAACA8CEoBQAAAAAAgMARlAIAAAAAAEDgCEoBAAAAAAAgcASlAAAAkKP55+Vhjh4kAtsdkHt9+umniV4E7AdBKQDI4bgQBhD2Y2CePHmin+tjjosImra7SZMmWdeuXRO9KAAy4Pnnn7dbb73V/v77b84dORRBqSTn3/G2bduW0GXJ7euQgxiC5m1z/sGY/3kgCGxvWcP6yzrvGDh27Fi7/fbbUzwHBOXHH3+0O++805o0aWJ79+5N9OLkKrHri+NixnnrbMOGDYlelFy33R177LE2fvx4K1u2rK1ZsybRi4U4CEolOe+ibdy4ce4he/bsSfBS5a6D/6ZNm1Ic2LgQyTouRtKfGTB37lwbOHCg3XDDDfbYY4+51xiMZXxb092xX3/91Xbt2sUxMIO87e2JJ56wF154IdGLkyv3448++sjtv08++aRt3749xetIH91Ymz9/vn3xxReJXpSkubnG9pd+2u5Gjx5tzZo1s969eyd6cXKdvHn/HXK++OKL7n+uYzJO60wZP9oG//jjj0QvTo6n8Zq2u8WLF9vkyZOtYsWKtmTJErvkkkvcDQ7kLASlQuLtt9+25557zn2cL1++RC9Orjn4v/nmm3bhhRfa6aefbvfdd5+LrusAR2AqfbwL3p9//tm++uor++6776LrlnW4f1pHr776ql1wwQW2atUqt9317dvXunXrRtZjBgMCr732mp1zzjl2yimnWPPmze2OO+6w33//PdGLl6usW7fOpk2bZp988on7nMBe+mj7e+ONN6xFixau7EeDWW2LCxYsiG6fBAbS55BDDrHrrrvOXc9onSJ9vO1sxowZNmDAADv//PPdgOybb74hMJBOujl577332sSJE23lypWWP39+rgUzYfXq1XbVVVe54DzSzztHbNmyxQX1tA7Lly+f6MXKFQEpBaGU2ahrloIFC7p9t0qVKi6498wzzyR6MeFDUCrJeQMHBVQ2btzoTqhIn88++8zat29vJ598sh166KEuQHXttde6AAsXI+m/ENZAtm3btnb22Wdb9+7drU+fPu511uGBywRuueUWVyrwv//9z2666SYrVaqUFS9e3A3OPAxo06bt77333rNOnTpZhw4dXCBAFycPP/ywy1xB+pUpU8YuvfRSl/6ubZObG/vn7Zf//POPPfvssy4IMGfOHPvtt9/szz//dPuzsn4ITMWnjMZ4Gjdu7Pr5vPzyy26Axno7MG1fU6dOdedhnXOrVavmzik6LhKcTx+dd7XPtmrVyj7//HN76qmn3PNcx2T8PKKgqDJXhP03/fvwhx9+6DJ8FFTR/0hfQKpp06au2uCee+5xrx199NF2//33W40aNVwFEYGpHCSCpLJ37964z//zzz+Rdu3aRa688sr9vg//+uabbyL33XdfZOTIkdHnnnvuucjpp58eOf/88yM//fSTe27Pnj0JXMqc7+23344UK1Ys8uijj0ZWrlwZeeCBByJ58uSJdOzYMfoe1mF8X331VeS4445zH//888+RKlWqRHr27Bl9/eOPP07g0uV82q527twZ6dKlS+S///2ve+7PP/+M1KhRI3LttddG37djx44ELmXOFHt+8PbRrVu3Rs4666zILbfcEtm9e3eCli73mDFjRqRVq1aRc889151TPNoO69evHzn55JMjH330Eedjn2HDhkX++OOP6OfDhw+PPPjgg5Evv/wy+tyzzz4bKVeuXOT77793n3MO2b/Vq1dHGjZsGHn88cej21+pUqUi//nPfxK9aDmWt0+uW7fOXT9v377dfb5ixYpIhw4d3L6ra0IP22Bqaa2Td955J5I/f/7InDlzAl+m3Lwutb1VrVo1cuihh0Y2btzont+1a1eiFy3H0pijQIECkTvuuCPF9jh69OjIokWLIt99912kc+fObl+eMGFCgpcWQqZUkvFSsZUaq1If3ZFVqY8yLHr16uXSFWfNmkXK9n4oC0Dr6oEHHrACBQpEn+/cubNdeeWVLo1b/X30Pq9GHqnpDqz6LyjTRyUXutM4atQolzE1e/Zsl7ki3Gm0FHcMldmj0pTChQu7bAF9rJKzNm3auPUpS5cutZEjR7r/EZ+2K+2/mzdvdtmO2h4bNGjg7nR76/H111932SrYR/uid3546KGH3Pli7dq17nNl6J100kn21ltvRbNwudOdtpo1a7rtS+Vmv/zyS3R9KfNWx8CtW7dajx49mKb6/82bN8+1GVCJsnrAeQ19H3zwQbv66qut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CjipQW9a5Xc6ZipjVGXLKvHTjSPv+oYB7b5rGpUz6hyraxrt0+r75mU4KjClm0NqOK1AIDJHPaa0TrW9IuU1njJqVX7rzaKnmxkKROnGhmZv1TZ57733uo8VaNZ7vW2X2Vozx0s8AJB+eQ3ZZu/evZY377+r9LnnnrObbrrJBg8ebC+//LLlz5/f/f/NN9/YGWecYa+99prNmjXL/vvf/1rhwoXtqaeesrVr19rrr79uYZUnT57ox2XKlLGuXbvaihUr7Morr3TPNW/e3Pr162elSpWyhx9+2F599dXo+4sUKZKQZc7tateubffff7+ddNJJ9vnnn1vjxo0tbH744QcbO3as286+/vpr95z+v+uuu+yKK66w3r1724YNG+zEE0+0Hj162MCBA+2PP/5I9GIjiVWrVs1OPfVUO/30023Hjh1ue2zRooU77uk8sWXLFvviiy+sXr16duedd9qePXvsyy+/dF+rc9CkSZNs5syZ1qpVq0T/KsilFi1aZJs2bbI6deq4c7NuYvqvdaRAgQJ27bXX2urVq2327Nn2xhtvuOd2795t+fLls7DTelu4cKE7b9x99902Y8YMty/r+mbChAn2/PPP26GHHuqu/w477DBr166d7dq1K9GLnSuVLFnSunTp4rZXpLzGGz9+vO3cudPuuOMOd1756aef7O2337aKFSvaEUccYSNHjnTXNW3atLE///zTjVW8fV5jF2RcwYIFE70IQK6TR5GpRC9EslGgaeLEiW4Qq4u6Dz/80G6++WZ34P/xxx+tU6dO9vvvv7uLjxo1ath7773nDv4nnHCC3XvvvXbuueda2Oj394JSXnBv/fr1bj3qhKpgydNPP+1enzNnjg0dOtSKFi3qBl/FihVL8NLnftoWNZgIK12gjR492v7++283WDjqqKPc4H/KlCkuwKwLtcsvv9zq169vL774ol100UXWvXv3RC82kth3333nBgraNxWMV+BJwdNt27bZO++8Y23btnWDBw3+NcioXr169KaIjp3aZjUgATLjpZdecjeGpk2bZmeffXbc99xyyy32zz//2BNPPBENQvlvzsFszJgxbr/9+OOP3UBV1zm6EXLjjTe6gPP06dPd+lqzZo3bxxWQBrKbbvD26dPHPvvsMxs3bpy1b98+xfX3999/b3/99Zcbt2h7VGCZgBSAIBGUyma6O92xY0eX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77/tvffes2uvvdaKFi0a9z0KEkn79u3tjz/+cAGjRYsWWaNGjaxly5a2bt266HtXrlxp06ZNszfffNM9PvzwQxs5cmT0dQWkJk6caGPGjLGvvvrK+vfvb507d3bv8xswYID7um+++caOPfZYu/nmm+2VV16xZ5991hYvXuzKDFu1apXiZwMAACQa5XsAAADp9Mknn9hJJ51kr776qrVr1y76/KGHHmrbt293HytgpWypNm3auKCUspc8Cg4pYHTNNde4TKn77rvP9acqXry4e12vzZkzxxYsWOCyncqUKWMzZsywpk2bRr+Hsq/Ut2rSpEkuU+r00093gS1lasmWLVusdOnS9swzz1jHjh3dc7t27XLZWDfccIP997//DWx9AQAA7A8NBwAAALLo008/daV2nTp1csEklelt3rzZypYtm+J927Ztc9lRHgWKvICUVKpUyQWy5Pvvv3fBp7POOivF99i5c6cdd9xxKZ5r0qRJ9GN9fwWh1PfKU6BAATvhhBNcJhUAAEBOQVAKAAAgnZTppPK8b7/9NsXz6ikl6vskCkgpwKRMplhqkO4PFvnpeyu45X0PUZ+qKlWqpHifP/tK0iolBAAAyMkISgEAAKSTMp+UuTR69Gjr27dvmsEg9Y9SWZ4aoisbKjPq1avngk+rVq2y5s2bp/vratWqZQULFrSPPvrIatSo4Z5T5pQanat8DwAAIKcgKAUAAJABjz/+uCuNU8mc+kKpsXjevHld0Gf58uVuFrwzzzzT9YG68MIL7d5777U6derYmjVrXNaTelH5y+3SorK+m266yTU3V/aUZtDbsGGDCzZpNr+uXbvG/ToFynr37u16R6knVfXq1d0yqBTwqquuOghrBAAAIHMISgEAAGSAMpE+//xzGz58uA0cONB++eUXl9GkzCYFkfr06ePK8N566y279dZbrXv37vbnn39axYoV7bTTTrMKFSqk+2cNGzbMypUr52bh++GHH1zpn7KwBg0atN+v00x8CmRdccUVtmnTJhcEe/fdd10DdAAAgJyC2fcAAAAAAAAQuLzB/0gAAAAAAACEHUEpAAAAAAAABI6gFAAAAAAAAAJHUAoAAAAAAACBIygFAAAAAACAwBGUAgAAAAAAQOAISgEAAAAAACBwBKUAAAAAAAAQOIJSAAAAAAAACBxBKQAAAAAAAASOoBQAAAAAAAACR1AKAAAAAAAAFrT/A90xfmhMMRaFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "df_imdb = pd.read_sql(\"SELECT * FROM IMDB_movies\", engine)\n", + "\n", + "# Pegar só o primeiro gênero de cada filme\n", + "df_imdb['GenrePrimary'] = df_imdb['Genre'].str.split(',').str[0]\n", + "\n", + "# Rating médio por gênero\n", + "df_genre = df_imdb.groupby('GenrePrimary')['Rating'].mean().round(2).sort_values(ascending=False)\n", + "\n", + "# Gráfico\n", + "plt.figure(figsize=(12, 6))\n", + "bars = plt.bar(df_genre.index, df_genre.values, color='steelblue')\n", + "plt.title('Rating Médio por Gênero (IMDB)', fontsize=14)\n", + "plt.xlabel('Gênero')\n", + "plt.ylabel('Rating Médio')\n", + "plt.xticks(rotation=45, ha='right')\n", + "\n", + "# Mostrar valor em cima de cada barra\n", + "for bar, val in zip(bars, df_genre.values):\n", + " plt.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.05,\n", + " str(val), ha='center', fontsize=9)\n", + "\n", + "plt.tight_layout()\n", + "plt.savefig('grafico_imdb.png', dpi=150)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/isaque_looqbox_challenge.pdf b/isaque_looqbox_challenge.pdf new file mode 100644 index 0000000..370ed0d Binary files /dev/null and b/isaque_looqbox_challenge.pdf differ