Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
179 changes: 179 additions & 0 deletions case1.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"id": "3d878b00",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>STORE_CODE</th>\n",
" <th>PRODUCT_CODE</th>\n",
" <th>DATE</th>\n",
" <th>SALES_VALUE</th>\n",
" <th>SALES_QTY</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>2019-01-01</td>\n",
" <td>708.5</td>\n",
" <td>65.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>2019-01-02</td>\n",
" <td>1297.1</td>\n",
" <td>119.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>2019-01-03</td>\n",
" <td>1144.5</td>\n",
" <td>105.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>2019-01-04</td>\n",
" <td>1090.0</td>\n",
" <td>100.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>18</td>\n",
" <td>2019-01-05</td>\n",
" <td>893.8</td>\n",
" <td>82.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pandas as pd\n",
"import mysql.connector\n",
"from mysql.connector import Error\n",
"import warnings\n",
"warnings.filterwarnings('ignore', category=UserWarning)\n",
"\n",
"def retrieve_data(product_code=None, store_code=None, date=None):\n",
" \"\"\"\n",
" Busca dados de vendas de forma dinâmica com filtros flexíveis.\n",
"\n",
" Parâmetros:\n",
" ----------\n",
" product_code : int, opcional\n",
" store_code : int, opcional\n",
" date : list (str), opcional -> Ex: ['2019-01-01', '2019-01-31']\n",
" \"\"\"\n",
" # Configurações de conexão com o banco de dados\n",
" db_config = {\n",
" 'host': '35.199.115.174'\n",
" ,'user': 'looqbox-challenge'\n",
" ,'password': 'looq-challenge'\n",
" ,'database': 'looqbox-challenge'\n",
" }\n",
"\n",
" conn = None\n",
" try:\n",
" conn = mysql.connector.connect(**db_config)\n",
"\n",
" # Inicialização da Query base trazendo todas as colunas\n",
" query = \"SELECT * FROM data_product_sales WHERE 1=1\"\n",
" params = []\n",
"\n",
" # Construção dinâmica das cláusulas WHERE\n",
" if product_code is not None:\n",
" query += \" AND product_code = %s\"\n",
" params.append(product_code)\n",
" \n",
" if store_code is not None:\n",
" query += \" AND store_code = %s\"\n",
" params.append(store_code)\n",
"\n",
" if date is not None and isinstance(date, list) and len(date) == 2:\n",
" query += \" AND date BETWEEN %s AND %s\"\n",
" params.append(date[0])\n",
" params.append(date[1])\n",
"\n",
" # Execução e conversão direta para DateFrame Pandas\n",
" df = pd.read_sql(query, conn, params=params)\n",
" return df\n",
" \n",
" except Error as e:\n",
" print(f\"Erro ao conectar ou executar query: {e}\")\n",
" return pd.DataFrame()\n",
" finally:\n",
" if conn and conn.is_connected():\n",
" conn.close()\n",
"\n",
"teste = retrieve_data(date = ['2019-01-01', '2019-01-31'])\n",
"display(teste.head())"
]
}
],
"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.11.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading