From b0f35f06ce193295b6003101796ff62bfd599f61 Mon Sep 17 00:00:00 2001 From: Guilherme Marins Date: Sun, 24 May 2026 16:09:15 -0300 Subject: [PATCH 1/4] sql-test --- looqbox_sql_test/sql-test.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 looqbox_sql_test/sql-test.ipynb diff --git a/looqbox_sql_test/sql-test.ipynb b/looqbox_sql_test/sql-test.ipynb new file mode 100644 index 00000000..e69de29b From 749edb41ea4fb565cc49478ba2fba18183b76643 Mon Sep 17 00:00:00 2001 From: Guilherme Marins Date: Sun, 24 May 2026 16:20:49 -0300 Subject: [PATCH 2/4] Delete looqbox_sql_test directory --- looqbox_sql_test/sql-test.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 looqbox_sql_test/sql-test.ipynb diff --git a/looqbox_sql_test/sql-test.ipynb b/looqbox_sql_test/sql-test.ipynb deleted file mode 100644 index e69de29b..00000000 From 670e001b680ec05ecae1ecaad183229ceee0a622 Mon Sep 17 00:00:00 2001 From: Guilherme Marins Date: Sun, 24 May 2026 16:29:06 -0300 Subject: [PATCH 3/4] sql-test --- looqbox_sql_test/sql-test.ipynb | 219 ++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 looqbox_sql_test/sql-test.ipynb diff --git a/looqbox_sql_test/sql-test.ipynb b/looqbox_sql_test/sql-test.ipynb new file mode 100644 index 00000000..e6c9aec2 --- /dev/null +++ b/looqbox_sql_test/sql-test.ipynb @@ -0,0 +1,219 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a2f02f2a", + "metadata": {}, + "source": [ + "Bibliotecas" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "772a7bfe", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sqlalchemy import create_engine" + ] + }, + { + "cell_type": "markdown", + "id": "5e29f4b3", + "metadata": {}, + "source": [ + "Acesso ao Banco" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c44161a2", + "metadata": {}, + "outputs": [], + "source": [ + "user = 'looqbox-challenge'\n", + "password = 'looq-challenge'\n", + "host = '35.199.115.174'\n", + "database = 'looqbox-challenge'\n", + "\n", + "engine = create_engine(f\"mysql+pymysql://{user}:{password}@{host}/{database}\")" + ] + }, + { + "cell_type": "markdown", + "id": "948d2ae3", + "metadata": {}, + "source": [ + "Tabelas com nomes corretos" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1baa5d64", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Tables_in_looqbox-challenge\n", + "0 IMDB_movies\n", + "1 data_product\n", + "2 data_product_sales\n", + "3 data_store_cad\n", + "4 data_store_sales\n" + ] + } + ], + "source": [ + "query_tabelas = \"SHOW TABLES;\"\n", + "df_tabelas = pd.read_sql(query_tabelas, engine)\n", + "\n", + "print(df_tabelas)" + ] + }, + { + "cell_type": "markdown", + "id": "8278d10b", + "metadata": {}, + "source": [ + "### SQL test" + ] + }, + { + "cell_type": "markdown", + "id": "7e8310c3", + "metadata": {}, + "source": [ + "1) What are the 10 most expensive products in the company?" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5e3893cf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 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\n" + ] + } + ], + "source": [ + "query_sql_test_1 = \"SELECT PRODUCT_NAME, PRODUCT_VAL FROM data_product ORDER BY PRODUCT_VAL DESC LIMIT 10;\"\n", + "\n", + "df_sql_test_1 = pd.read_sql(query_sql_test_1, engine)\n", + "print(df_sql_test_1)" + ] + }, + { + "cell_type": "markdown", + "id": "e23669df", + "metadata": {}, + "source": [ + "2) What sections do the 'BEBIDAS' and 'PADARIA' departments have?" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a89aa850", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " DEP_NAME SECTION_NAME\n", + "0 BEBIDAS BEBIDAS\n", + "1 BEBIDAS VINHOS\n", + "2 PADARIA DOCES-E-SOBREMESAS\n", + "3 PADARIA QUEIJOS-E-FRIOS\n", + "4 BEBIDAS CERVEJAS\n", + "5 PADARIA PADARIA\n", + "6 BEBIDAS REFRESCOS\n", + "7 PADARIA GESTANTE\n" + ] + } + ], + "source": [ + "query_sql_test_2 = \"SELECT DISTINCT DEP_NAME, SECTION_NAME FROM data_product WHERE DEP_NAME IN ('BEBIDAS', 'PADARIA');\"\n", + "\n", + "df_sql_test_2 = pd.read_sql(query_sql_test_2, engine)\n", + "print(df_sql_test_2)" + ] + }, + { + "cell_type": "markdown", + "id": "a28760dc", + "metadata": {}, + "source": [ + "3) What was the total sale of products (in $) of each Business Area in the first quarter of 2019?" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1c10faf7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " BUSINESS_NAME TOTAL_SALES\n", + "0 Varejo 81032347.65\n", + "1 Farma 81776691.73\n", + "2 Atacado 80384884.60\n", + "3 Posto 32072326.40\n", + "4 Proximidade 80171122.80\n" + ] + } + ], + "source": [ + "query_sql_test_3 = \"SELECT cad.BUSINESS_NAME, SUM(sales.SALES_VALUE) AS TOTAL_SALES FROM data_store_cad cad INNER JOIN data_store_sales sales ON cad.STORE_CODE = sales.STORE_CODE WHERE sales.DATE BETWEEN '2019-01-01' AND '2019-03-31' GROUP BY cad.BUSINESS_NAME;\"\n", + "\n", + "df_sql_test_3 = pd.read_sql(query_sql_test_3, engine)\n", + "print(df_sql_test_3)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv (3.12.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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 5aec7462ddbc2330febedb692f5d51e58155f098 Mon Sep 17 00:00:00 2001 From: Guilherme Marins Date: Sun, 24 May 2026 18:47:04 -0300 Subject: [PATCH 4/4] cases-looqbox --- looqbox-cases/cases-test.ipynb | 804 +++++++++++++++++++++++++++++++++ 1 file changed, 804 insertions(+) create mode 100644 looqbox-cases/cases-test.ipynb diff --git a/looqbox-cases/cases-test.ipynb b/looqbox-cases/cases-test.ipynb new file mode 100644 index 00000000..51f9b1c1 --- /dev/null +++ b/looqbox-cases/cases-test.ipynb @@ -0,0 +1,804 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a65e76cb", + "metadata": {}, + "source": [ + "Bibliotecas" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d29c56e3", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sqlalchemy import create_engine\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "5448a7fe", + "metadata": {}, + "source": [ + "Acesso ao Banco" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ac3afb34", + "metadata": {}, + "outputs": [], + "source": [ + "user = 'looqbox-challenge'\n", + "password = 'looq-challenge'\n", + "host = '35.199.115.174'\n", + "database = 'looqbox-challenge'\n", + "\n", + "engine = create_engine(f\"mysql+pymysql://{user}:{password}@{host}/{database}\")" + ] + }, + { + "cell_type": "markdown", + "id": "9746eeec", + "metadata": {}, + "source": [ + "### Cases" + ] + }, + { + "cell_type": "markdown", + "id": "84027e13", + "metadata": {}, + "source": [ + "#### 1) The Dev Team was tired of developing the same old queries just varying the filters accordingly to their boss demands." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "46f17034", + "metadata": {}, + "outputs": [], + "source": [ + "def pegar_data(product_code, store_code, date):\n", + " query = f\"\"\"\n", + " SELECT *\n", + " FROM data_product_sales\n", + " WHERE product_code = {product_code}\n", + " AND store_code = {store_code}\n", + " AND date BETWEEN '{date[0]}' AND '{date[1]}'\n", + " \"\"\"\n", + " return pd.read_sql(query, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "274975b8", + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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
01182019-01-01708.565.0
11182019-01-021297.1119.0
21182019-01-031144.5105.0
31182019-01-041090.0100.0
41182019-01-05893.882.0
51182019-01-06741.268.0
61182019-01-07654.060.0
71182019-01-08741.268.0
81182019-01-091373.4126.0
91182019-01-101068.298.0
101182019-01-111057.397.0
111182019-01-12806.674.0
121182019-01-13686.763.0
131182019-01-14697.664.0
141182019-01-15763.070.0
151182019-01-161199.0110.0
161182019-01-171068.298.0
171182019-01-181057.397.0
181182019-01-19795.773.0
191182019-01-20697.664.0
201182019-01-21675.862.0
211182019-01-22806.674.0
221182019-01-231395.2128.0
231182019-01-241035.595.0
241182019-01-251057.397.0
251182019-01-26850.278.0
261182019-01-27763.070.0
271182019-01-28708.565.0
281182019-01-29730.367.0
291182019-01-301384.3127.0
301182019-01-311177.2108.0
\n", + "
" + ], + "text/plain": [ + " 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", + "5 1 18 2019-01-06 741.2 68.0\n", + "6 1 18 2019-01-07 654.0 60.0\n", + "7 1 18 2019-01-08 741.2 68.0\n", + "8 1 18 2019-01-09 1373.4 126.0\n", + "9 1 18 2019-01-10 1068.2 98.0\n", + "10 1 18 2019-01-11 1057.3 97.0\n", + "11 1 18 2019-01-12 806.6 74.0\n", + "12 1 18 2019-01-13 686.7 63.0\n", + "13 1 18 2019-01-14 697.6 64.0\n", + "14 1 18 2019-01-15 763.0 70.0\n", + "15 1 18 2019-01-16 1199.0 110.0\n", + "16 1 18 2019-01-17 1068.2 98.0\n", + "17 1 18 2019-01-18 1057.3 97.0\n", + "18 1 18 2019-01-19 795.7 73.0\n", + "19 1 18 2019-01-20 697.6 64.0\n", + "20 1 18 2019-01-21 675.8 62.0\n", + "21 1 18 2019-01-22 806.6 74.0\n", + "22 1 18 2019-01-23 1395.2 128.0\n", + "23 1 18 2019-01-24 1035.5 95.0\n", + "24 1 18 2019-01-25 1057.3 97.0\n", + "25 1 18 2019-01-26 850.2 78.0\n", + "26 1 18 2019-01-27 763.0 70.0\n", + "27 1 18 2019-01-28 708.5 65.0\n", + "28 1 18 2019-01-29 730.3 67.0\n", + "29 1 18 2019-01-30 1384.3 127.0\n", + "30 1 18 2019-01-31 1177.2 108.0" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data = pegar_data(product_code=18, store_code=1, date=['2019-01-01', '2019-01-31'])\n", + "my_data" + ] + }, + { + "cell_type": "markdown", + "id": "1d53373a", + "metadata": {}, + "source": [ + "#### 2) A brand new client sent you two ready-to-go queries. Those are listed below:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "9fee2195", + "metadata": {}, + "outputs": [], + "source": [ + "query1 = \"\"\"\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", + "query2 = \"\"\"\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", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "40201fc2", + "metadata": {}, + "outputs": [], + "source": [ + "df_cad = pd.read_sql(query1, engine)\n", + "df_sales = pd.read_sql(query2, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "9fc6061c", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged = pd.merge(df_cad, df_sales, on='STORE_CODE')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "c72ebfe6", + "metadata": {}, + "outputs": [], + "source": [ + "df_merged['DATE'] = pd.to_datetime(df_merged['DATE'])" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "319c45c5", + "metadata": {}, + "outputs": [], + "source": [ + "periodo_out_dez = (df_merged['DATE'] >= '2019-10-01') & (df_merged['DATE'] <= '2019-12-31')\n", + "df_final = df_merged.loc[periodo_out_dez].copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "5506e12a", + "metadata": {}, + "outputs": [], + "source": [ + "df_final['TM'] = df_final['SALES_VALUE'] / df_final['SALES_QTY']" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "c29f0e0b", + "metadata": {}, + "outputs": [], + "source": [ + "visualizacao = df_final.groupby(['STORE_NAME', 'BUSINESS_NAME'])['TM'].mean().reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "3ed8d878", + "metadata": {}, + "outputs": [], + "source": [ + "visualizacao.columns = ['Loja', 'Categoria', 'TM']" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "8ec4d5f9", + "metadata": {}, + "outputs": [], + "source": [ + "visualizacao['TM'] = visualizacao['TM'].round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "057b13de", + "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", + "
LojaCategoriaTM
0BahiaAtacado15.39
1BangkokPosto13.67
2BelemProximidade15.37
3BerlinProximidade15.39
4Buenos AiresAtacado15.39
5ChicagoVarejo15.53
6DubaiAtacado15.39
7Hong KongFarma26.35
8LondonFarma28.99
9MadriFarma29.03
10MiamiPosto13.67
11New YorkProximidade15.39
12ParisProximidade15.39
13Rio de JaneiroFarma29.58
14RomaVarejo15.39
\n", + "
" + ], + "text/plain": [ + " Loja Categoria TM\n", + "0 Bahia Atacado 15.39\n", + "1 Bangkok Posto 13.67\n", + "2 Belem Proximidade 15.37\n", + "3 Berlin Proximidade 15.39\n", + "4 Buenos Aires Atacado 15.39\n", + "5 Chicago Varejo 15.53\n", + "6 Dubai Atacado 15.39\n", + "7 Hong Kong Farma 26.35\n", + "8 London Farma 28.99\n", + "9 Madri Farma 29.03\n", + "10 Miami Posto 13.67\n", + "11 New York Proximidade 15.39\n", + "12 Paris Proximidade 15.39\n", + "13 Rio de Janeiro Farma 29.58\n", + "14 Roma Varejo 15.39" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "visualizacao.head(15)" + ] + }, + { + "cell_type": "markdown", + "id": "b30a42c2", + "metadata": {}, + "source": [ + "#### 3) Building your own visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "f414e3a9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Id', 'Title', 'Genre', 'Director', 'Actors', 'Year', 'Runtime', 'Rating', 'Votes', 'RevenueMillions', 'Metascore']\n" + ] + } + ], + "source": [ + "df_descobrir = pd.read_sql(\"SELECT * FROM IMDB_movies LIMIT 1\", engine)\n", + "print(df_descobrir.columns.tolist())" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "e24416b4", + "metadata": {}, + "outputs": [], + "source": [ + "query_imdb = \"SELECT Genre, Rating FROM IMDB_movies\"\n", + "df_imdb = pd.read_sql(query_imdb, engine)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "798c6e30", + "metadata": {}, + "outputs": [], + "source": [ + "df_imdb['Genre'] = df_imdb['Genre'].str.split(',').str[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "e2650ac0", + "metadata": {}, + "outputs": [], + "source": [ + "df_rating = df_imdb.groupby('Genre')['Rating'].mean().sort_values(ascending=False).reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "b1573da5", + "metadata": {}, + "outputs": [], + "source": [ + "df_top10 = df_rating.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "2488b203", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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bkbQtWtX+fnnn2X+/PnSqVMnSZAggcSNG1fc3NyM5cx6oGaxWGTTpk3SuHFjadCggezfv198fX1l7NixsmfPHnuX90lJlCiR1KtXT2bMmCGXL1829Ukq6/fl0aNHMnv2bJk6dars3LlTbt++Lffu3ZNOnTrJ3r17TRuEXr16FeF0Hx8fad68uSxdulSePn1quvXyJovFIitWrJDq1atLaGiopEmTRubPny+NGzfmJIyIxI0bVzp16iR+fn5y9OhRmT59uojwux4tFHYVGhoa4fRHjx5pzZo19csvv3zncmZw6dIlLVmypCZPnlxHjhxpM2/u3LlaqlQprVGjhl66dMlOFX4aNmzYoHHixNHx48frxYsXdeTIkWqxWLRRo0bGMiEhIXas0H5OnTqlefPmVVXVq1evaqpUqfSbb74x5u/bt89epdldSEiIBgUFabNmzbRz586qqnrv3j1Nly6dtm3b1lju5cuX9irRbt7c71q/P8+ePdPy5ctr165dNTg42B6lfTK2bNmifn5+WrlyZT1z5owx/d69e5ozZ04tUqSI7tmzx1S/YQMGDNC7d+8ajwcPHqyjRo3Sv/76y5g2e/ZsTZo0qV64cEFVzbtvVlW9fv265smTRydNmqSqr7edBAkSaMeOHe1cmX1YvysPHz7UR48e6YsXL1RV9fz589qgQQMtUqSIzp0711jezNvOf0UI+kRMmTJFv//+e717964+e/ZMVVU3btyoMWPG1D/++MPO1dlXaGioDh48WL28vLRkyZL66NEjm/nz58/XPHnyaIMGDfTVq1f2KdLObt++rVWqVNFRo0apqurdu3c1TZo06ufnpylTptT69esby5phh2n9Edm4caOuXr1aL168qDlz5tTVq1dr+vTp9euvvza2lb/++kurV69uc4BiRrVq1dIVK1bo7du3NWXKlPr1118b81atWqXbtm2zX3F2EPZ7MmrUKP3jjz/0xo0bxrTevXtrrly5jHBopoP8sC5cuKBx48ZVi8WimzdvVtX/Wxf379/XPHnyaPbs2XX//v32LPOj2bVrl2bOnFkrV66s9+/fV1XVrl27aurUqbVAgQLatGlTvXz5sqqqNmjQQBs0aGDabcfq/PnzmilTJr1//75evnxZ06RJo61btzbmb9myRR88eGDHCj8e67awevVqLVy4sHp7e2umTJl01qxZ+vLl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rNEKFSpokSJFjCB07do1/euvv/T27dsfvdYPLezonG5ubjb37lN9fXzTokULjR07tu7Zs0dV/2/9BQUFaf/+/R16dLzPFSHoHcLuAKwjK/3999/q4+OjOXLk0I0bN9osHxwcbPzQOvqN9qzrZteuXTpy5Eht1aqVTQhSfT06XNq0abVly5am6tNidfz4cY0dO7Z279493HawaNEizZ07txYoUEBfvHihU6ZM0RgxYmjv3r1NFYSOHz+uHh4exg1iL1++rBaLRXv06GEcaFy7dk0zZMig1apVM0axMqtly5apq6urNm3aVE+dOmVMf/r0qXbv3l3TpUvnkG3wo+Lp06faunVrbdasmYaGhhr74t9++03z5cunZcuWNc3NLMNasmSJFi5cWENCQrRVq1aaLFkyY+Cas2fP6tixY43Hji5sAJo6dar+8MMP2rBhQ122bJmGhIToixcvdMKECZorVy796quvInwNR992rL/x27dv11GjRmmHDh3ChcK1a9dqhQoVtESJEg49Cpx1e7FeDcuWLZsxL+ygD3fv3tUmTZqou7t7uCCETxMh6C3C7iTnzZun7du3N25mdebMGc2RI4dWrlzZGBXkzedE9NjRrF27Vi0WixYpUkQtFotmyZJFt27darPMxo0bNU6cONqmTRubOyU7umvXrmmSJEm0bt26xrTQ0FCbMDR16lR1d3c3OpMOGjRIEyZMaIp+HNYfhg0bNmiVKlVU9XU/qNSpU+u3335rLGdtlnP9+nWHHwY7MkJCQnTKlCnq4uKiWbNm1ZYtW+p3332n1apVUw8PD4dsghKRjRs3Gm3sJ0yYoG3atNGzZ88aB6Zr167VGDFi2OyfVV/fe8psN7MMq0SJEurk5KQpU6bUY8eO2bscu+vUqZMmTZpU69Wrp1WrVlUnJydt166d3rlzR589e6bjx4/XfPnyae3ate1dql2sXLlS3dzcNEeOHJomTRpNkCBBuP3w+vXrtWDBgurn56dBQUEOd9Aftglc7NixtVSpUpoyZUqbUTrD7kvu3bunTZo00QQJEuj27ds/er2IGkJQBMKGl7/++kvLlSunGTJk0P79++udO3dU9fUl0ezZs2uVKlV0165d9ir1owp75uvq1avasWNHo9nSli1btECBAlq3bt1wX/ytW7eabpShy5cva/78+bVatWrhto+wPxIlSpTQGjVq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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "plt.bar(df_top10['Genre'], df_top10['Rating'], color='#005088') # Um azul mais profissional\n", + "plt.xticks(rotation=45, ha='right')\n", + "plt.title('Top 10 Gêneros com Maior Nota Média (IMDB)')\n", + "plt.xlabel('Gênero Principal')\n", + "plt.ylabel('Nota Média')\n", + "\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv (3.12.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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}