From 22cc3883c3f61570e1d74ce59f24916779c9e88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Herculano?= Date: Thu, 4 Sep 2025 12:29:39 -0300 Subject: [PATCH] =?UTF-8?q?atualiza=C3=A7=C3=B5es=2004/09?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- promoção/promoção_EUD_ciclo07.ipynb | 2949 ++++++------- promoção/promoção_boti_ciclo07.ipynb | 5227 ++++++++++++------------ relatorio_ruptura/ruptura_projetada.py | 13 +- 3 files changed, 4071 insertions(+), 4118 deletions(-) diff --git a/promoção/promoção_EUD_ciclo07.ipynb b/promoção/promoção_EUD_ciclo07.ipynb index 906f5c5..c93e0af 100644 --- a/promoção/promoção_EUD_ciclo07.ipynb +++ b/promoção/promoção_EUD_ciclo07.ipynb @@ -2,14 +2,14 @@ "cells": [ { "cell_type": "code", - "execution_count": 132, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_41628\\2131003807.py:50: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_72404\\1229765338.py:39: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", " df0 = pd.read_sql(query, conn)\n" ] } @@ -39,9 +39,9 @@ " e.pdv,\n", " e.SKU,\n", " COALESCE(e.SKU_PARA, e.SKU) AS SKU_FINAL,\n", - " MAX(e.[ESTOQUE ATUAL]) AS [ESTOQUE ATUAL],\n", - " MAX(e.[ESTOQUE EM TRANSITO]) AS [ESTOQUE EM TRANSITO],\n", - " MAX(e.[PEDIDO PENDENTE]) AS [PEDIDO PENDENTE],\n", + " e.[ESTOQUE ATUAL],\n", + " e.[ESTOQUE EM TRANSITO],\n", + " e.[PEDIDO PENDENTE],\n", " d.salescurve AS Curva,\n", " e.CATEGORIA,\n", " d.dayswithoutsales AS DiasSemVenda,\n", @@ -51,18 +51,7 @@ " estoque_mar e \n", "LEFT JOIN draft d \n", " ON d.loja_id = e.PDV \n", - " AND d.code = COALESCE(e.SKU_PARA, e.SKU)\n", - "WHERE \n", - " d.businessunit = 'EUD'\n", - "GROUP BY \n", - " e.pdv,\n", - " e.SKU,\n", - " COALESCE(e.SKU_PARA, e.SKU),\n", - " d.salescurve,\n", - " e.CATEGORIA,\n", - " d.dayswithoutsales,\n", - " d.nextcycleprojection,\n", - " d.secondtonextcycleprojection\n", + " AND d.code = e.SKU\n", "'''\n", "df0 = pd.read_sql(query, conn)\n", "\n" @@ -70,73 +59,46 @@ }, { "cell_type": "code", - "execution_count": 279, + "execution_count": 2, "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", - "
pdvSKUSKU_FINALESTOQUE ATUALESTOQUE EM TRANSITOPEDIDO PENDENTECurvaCATEGORIADiasSemVendanextcycleprojectionsecondtonextcycleprojection
\n", - "
" - ], "text/plain": [ - "Empty DataFrame\n", - "Columns: [pdv, SKU, SKU_FINAL, ESTOQUE ATUAL, ESTOQUE EM TRANSITO, PEDIDO PENDENTE, Curva, CATEGORIA, DiasSemVenda, nextcycleprojection, secondtonextcycleprojection]\n", - "Index: []" + "pdv\n", + "20997 27525\n", + "20992 26415\n", + "20969 26377\n", + "21007 13285\n", + "20995 12194\n", + " ... \n", + "23156 1969\n", + "24253 1334\n", + "24254 1331\n", + "24268 1175\n", + "24258 941\n", + "Name: count, Length: 80, dtype: int64" ] }, - "execution_count": 279, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df0[(df0['SKU'] == '93403') & (df0['pdv'] == 21375)]" + "df0['pdv'].value_counts()" ] }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_41628\\1692316838.py:25: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_72404\\1692316838.py:25: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", " dfv0 = pd.read_sql(query_vendas, conn)\n" ] } @@ -173,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 135, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -182,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 136, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -216,43 +178,43 @@ " \n", " \n", " 0\n", - " 12823\n", - " 48664\n", - " BOTICOLL PORTINARI DES COL 100ml V5\n", - " 1.0\n", - " C202411\n", + " 21278\n", + " 51244\n", + " QUASAR DES COL BLUE V4 100ml\n", + " 7.0\n", + " C202512\n", " \n", " \n", " 1\n", - " 12826\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " 7.0\n", - " C202414\n", + " 20993\n", + " 49418\n", + " NSPA OL DES HID CPO QUIN/AMEN 200ml V3\n", + " 9.0\n", + " C202508\n", " \n", " \n", " 2\n", - " 20998\n", - " 55142\n", - " CASA 214 DIFUS VARET BRIS/CEDROS 250ml\n", + " 21375\n", + " 84385\n", + " MALBEC EDP SIGNATURE V3 90ml\n", " 1.0\n", - " C202414\n", + " C202413\n", " \n", " \n", " 3\n", - " 21495\n", - " 52225\n", - " NSPA SAB BARR CPO AMEI 90g V6\n", + " 12820\n", + " 87373\n", + " CBEM SAB BARRA BEIJINHO V3 2x80g\n", " 0.0\n", - " C202412\n", + " C202414\n", " \n", " \n", " 4\n", - " 20441\n", - " 52016\n", - " NSPA CREM HID MAOS AMEI DOUR 75g\n", - " 1.0\n", - " C202413\n", + " 13427\n", + " 49766\n", + " UOMINI DES COL BLACK V6 100ml\n", + " 2.0\n", + " C202412\n", " \n", " \n", "\n", @@ -260,14 +222,14 @@ ], "text/plain": [ " PDV SKU DESCRICAO VENDAS_CICLO Ciclo\n", - "0 12823 48664 BOTICOLL PORTINARI DES COL 100ml V5 1.0 C202411\n", - "1 12826 48060 LILY CREM DES HID ACET CPO 250g V8 7.0 C202414\n", - "2 20998 55142 CASA 214 DIFUS VARET BRIS/CEDROS 250ml 1.0 C202414\n", - "3 21495 52225 NSPA SAB BARR CPO AMEI 90g V6 0.0 C202412\n", - "4 20441 52016 NSPA CREM HID MAOS AMEI DOUR 75g 1.0 C202413" + "0 21278 51244 QUASAR DES COL BLUE V4 100ml 7.0 C202512\n", + "1 20993 49418 NSPA OL DES HID CPO QUIN/AMEN 200ml V3 9.0 C202508\n", + "2 21375 84385 MALBEC EDP SIGNATURE V3 90ml 1.0 C202413\n", + "3 12820 87373 CBEM SAB BARRA BEIJINHO V3 2x80g 0.0 C202414\n", + "4 13427 49766 UOMINI DES COL BLACK V6 100ml 2.0 C202412" ] }, - "execution_count": 136, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -278,7 +240,7 @@ }, { "cell_type": "code", - "execution_count": 137, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -313,7 +275,6 @@ " C202416\n", " C202417\n", " ...\n", - " C202503\n", " C202504\n", " C202505\n", " C202506\n", @@ -323,6 +284,7 @@ " C202510\n", " C202511\n", " C202512\n", + " C202513\n", " \n", " \n", " \n", @@ -448,7 +410,7 @@ " \n", " \n", "\n", - "

5 rows × 22 columns

\n", + "

5 rows × 23 columns

\n", "" ], "text/plain": [ @@ -459,24 +421,24 @@ "3 11201 1296 PMPCK THE BLEND DES ANTIT AER 2x75g 0.0 0.0 \n", "4 11201 1302 PMPCK LILY DES ANTIT AER 2x75g 0.0 0.0 \n", "\n", - " C202413 C202414 C202415 C202416 C202417 ... C202503 C202504 \\\n", + " C202413 C202414 C202415 C202416 C202417 ... C202504 C202505 \\\n", "0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "1 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "2 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "3 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "4 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "\n", - " C202505 C202506 C202507 C202508 C202509 C202510 C202511 C202512 \n", + " C202506 C202507 C202508 C202509 C202510 C202511 C202512 C202513 \n", "0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", - "[5 rows x 22 columns]" + "[5 rows x 23 columns]" ] }, - "execution_count": 137, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -507,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": 138, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -525,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 139, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -546,7 +508,7 @@ }, { "cell_type": "code", - "execution_count": 140, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -587,7 +549,7 @@ }, { "cell_type": "code", - "execution_count": 141, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -605,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 142, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -616,7 +578,7 @@ " dtype='object')" ] }, - "execution_count": 142, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -627,21 +589,24 @@ }, { "cell_type": "code", - "execution_count": 143, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "df_pdv = pd.read_excel(r\"C:\\Users\\joao.herculano\\Documents\\PDV_ATT.xlsx\")\n", "df_pdv = df_pdv.rename(columns={'DESCRIÇÃO':'DESCRIÇÃO PDV'})\n", - "df_pdv = df_pdv.drop(columns=['REGIÃO', 'ESTADO','CIDADE','GESTÃO', 'SUPERVISOR', 'STATUS'])\n", + "df_pdv = df_pdv.drop(columns=['REGIÃO', 'ESTADO','CIDADE','GESTÃO', 'SUPERVISOR'])\n", "df_pdv = df_pdv[~df_pdv['CANAL'].isin(['MTZ','LJ'])]\n", + "df_pdv = df_pdv[df_pdv['STATUS']!= \"INATIVO\"]\n", + "\n", + "df_pdv = df_pdv.drop(columns=['STATUS'])\n", "\n", "\n" ] }, { "cell_type": "code", - "execution_count": 144, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -669,7 +634,6 @@ "21375 1\n", "21383 1\n", "21495 1\n", - "22448 1\n", "22541 1\n", "23703 1\n", "23704 1\n", @@ -683,7 +647,7 @@ "Name: count, dtype: int64" ] }, - "execution_count": 144, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -694,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 145, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -716,7 +680,7 @@ }, { "cell_type": "code", - "execution_count": 146, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -725,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -734,7 +698,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -766,7 +730,7 @@ }, { "cell_type": "code", - "execution_count": 149, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -804,17 +768,17 @@ " \n", " \n", " \n", - " 2388\n", - " C202514\n", - " 2025-09-17\n", - " 2025-10-07\n", + " 2430\n", + " C202515\n", + " 2025-10-08\n", + " 2025-10-28\n", " 21\n", " EUDORA\n", - " 2025-09-17\n", - " 14\n", + " 2025-10-08\n", + " 15\n", " C2025\n", - " C202516\n", - " 23\n", + " C202517\n", + " 35\n", " \n", " \n", "\n", @@ -822,13 +786,13 @@ ], "text/plain": [ " Ciclo INICIO CICLO FIM CICLO DURAÇÃO MARCA Date NUM_CICLO \\\n", - "2388 C202514 2025-09-17 2025-10-07 21 EUDORA 2025-09-17 14 \n", + "2430 C202515 2025-10-08 2025-10-28 21 EUDORA 2025-10-08 15 \n", "\n", " ANO_CICLO CICLOMAIS2 dias_ate_inicio \n", - "2388 C2025 C202516 23 " + "2430 C2025 C202517 35 " ] }, - "execution_count": 149, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -839,7 +803,7 @@ }, { "cell_type": "code", - "execution_count": 150, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -848,7 +812,7 @@ }, { "cell_type": "code", - "execution_count": 151, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -857,16 +821,16 @@ }, { "cell_type": "code", - "execution_count": 152, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ - "df_tabela = pd.read_excel(r\"C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistência Suprimentos - 2025\\SUPRIMENTOS\\DB_PROMOÇÕES\\EUDORA\\202513\\tabela promo\\TABELA-DE-PROMOS_C13-(1)-1752011522504.xlsx.xlsx\",skiprows=1)\n" + "df_tabela = pd.read_excel(r\"C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistência Suprimentos - 2025\\SUPRIMENTOS\\DB_PROMOÇÕES\\EUDORA\\202515\\tabela promo\\Tabela-de-Promocao_C15-1755294384452.xlsx.xlsx\",skiprows=1)\n" ] }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -916,19 +880,19 @@ " \n", " \n", " 0\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", + " 94060\n", " ...\n", - " 59.47\n", - " 61.22\n", + " 28.87\n", + " 29.72\n", " 0.2\n", " 0.25\n", " 0.28\n", @@ -940,7 +904,7 @@ " \n", " \n", " 1\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -949,10 +913,10 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 93541\n", + " 52107\n", " ...\n", - " 30.57\n", - " 31.47\n", + " 33.97\n", + " 34.97\n", " 0.2\n", " 0.25\n", " 0.28\n", @@ -964,7 +928,7 @@ " \n", " \n", " 2\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -973,10 +937,10 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 53138\n", + " 50271\n", " ...\n", - " 35.67\n", - " 36.72\n", + " 23.77\n", + " 24.47\n", " 0.2\n", " 0.25\n", " 0.28\n", @@ -988,7 +952,7 @@ " \n", " \n", " 3\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -997,10 +961,10 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 50762\n", + " 57550\n", " ...\n", - " 23.43\n", - " 24.12\n", + " 27.17\n", + " 27.97\n", " 0.2\n", " 0.25\n", " 0.28\n", @@ -1012,7 +976,7 @@ " \n", " \n", " 4\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -1021,10 +985,10 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 49803\n", + " 52943\n", " ...\n", - " 28.53\n", - " 29.37\n", + " 35.67\n", + " 36.72\n", " 0.2\n", " 0.25\n", " 0.28\n", @@ -1040,26 +1004,26 @@ "" ], "text/plain": [ - " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", - "0 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "1 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "2 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "3 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "4 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", + "0 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "1 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + "2 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + "3 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + "4 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", "\n", " Promo Período Limitado? EAM Categoria Cód. Combo Código do Item \\\n", - "0 NaN Não PERF. FEMININA NaN 85268 \n", - "1 NaN Não PERF. FEMININA NaN 93541 \n", - "2 NaN Não PERF. FEMININA NaN 53138 \n", - "3 NaN Não PERF. FEMININA NaN 50762 \n", - "4 NaN Não PERF. FEMININA NaN 49803 \n", + "0 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "1 NaN Não PERF. FEMININA NaN 52107 \n", + "2 NaN Não PERF. FEMININA NaN 50271 \n", + "3 NaN Não PERF. FEMININA NaN 57550 \n", + "4 NaN Não PERF. FEMININA NaN 52943 \n", "\n", " ... 0.34.2 0.35.2 0.2.3 0.25.3 0.28.3 0.3.3 0.32.3 0.34.3 0.35.3 \\\n", - "0 ... 59.47 61.22 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", - "1 ... 30.57 31.47 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", - "2 ... 35.67 36.72 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", - "3 ... 23.43 24.12 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", - "4 ... 28.53 29.37 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", + "0 ... 28.87 29.72 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", + "1 ... 33.97 34.97 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", + "2 ... 23.77 24.47 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", + "3 ... 27.17 27.97 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", + "4 ... 35.67 36.72 0.2 0.25 0.28 0.3 0.32 0.34 0.35 \n", "\n", " BSO \n", "0 Sim \n", @@ -1071,7 +1035,7 @@ "[5 rows x 47 columns]" ] }, - "execution_count": 153, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1082,7 +1046,7 @@ }, { "cell_type": "code", - "execution_count": 154, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -1099,7 +1063,7 @@ }, { "cell_type": "code", - "execution_count": 155, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -1108,7 +1072,7 @@ }, { "cell_type": "code", - "execution_count": 156, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1155,28 +1119,28 @@ " \n", " \n", " 0\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.90\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " \n", " \n", " 1\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -1185,19 +1149,19 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 93541\n", - " DIVA ESPLÊNDIDA DESODORANTE COLONIA 100ml\n", - " FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: DIVA ESP...\n", - " 139.9\n", - " 89.9\n", - " 0.357\n", - " 62.93\n", - " 89.9\n", - " 26.97\n", + " 52107\n", + " EUDORA DIVA FABULOSA DESODORANTE COLONIA 100ML\n", + " EUDORA DIVA FABULOSA DESODORANTE COLONIA 100ML...\n", + " 139.90\n", + " 99.9\n", + " 0.286\n", + " 69.93\n", + " 99.9\n", + " 29.97\n", " \n", " \n", " 2\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -1206,19 +1170,19 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 53138\n", - " EUDORA IMENSI DESODORANTE COLÔNIA SANCHO 100 ML\n", - " FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: EUDORA I...\n", - " 149.9\n", - " 104.9\n", - " 0.300\n", - " 73.43\n", - " 104.9\n", - " 31.47\n", + " 50271\n", + " EUDORA DESODORANTE COLÔNIA KISS ME NOW 50ml VE...\n", + " EUDORA DESODORANTE COLÔNIA KISS ME NOW 50ml VE...\n", + " 99.99\n", + " 69.9\n", + " 0.301\n", + " 48.93\n", + " 69.9\n", + " 20.97\n", " \n", " \n", " 3\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -1227,19 +1191,19 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 50762\n", - " EUDORA VELVET SENSUAL DESODORANTE COLÔNIA 100ML\n", - " FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: EUDORA V...\n", - " 119.9\n", - " 68.9\n", - " 0.425\n", - " 48.23\n", - " 68.9\n", - " 20.67\n", + " 57550\n", + " EUDORA VELVET MILANO DESODORANTE COLÔNIA 100ML\n", + " EUDORA VELVET MILANO DESODORANTE COLÔNIA 100ML...\n", + " 119.90\n", + " 79.9\n", + " 0.334\n", + " 55.93\n", + " 79.9\n", + " 23.97\n", " \n", " \n", " 4\n", - " 202513\n", + " 202515\n", " Guia CF\n", " Promoção CF\n", " Movimentar Flow\n", @@ -1248,65 +1212,65 @@ " Não\n", " PERF. FEMININA\n", " NaN\n", - " 49803\n", - " CHIC DES COL RETRO 95ml V2\n", - " FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: CHIC DES...\n", - " 119.9\n", - " 83.9\n", - " 0.300\n", - " 58.73\n", - " 83.9\n", - " 25.17\n", + " 52943\n", + " Eudora Magnific Rouge Camélia Des Col 75 ML\n", + " Eudora Magnific Rouge Camélia Des Col 75 ML | ...\n", + " 134.90\n", + " 104.9\n", + " 0.222\n", + " 73.43\n", + " 104.9\n", + " 31.47\n", " \n", " \n", "\n", "" ], "text/plain": [ - " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", - "0 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "1 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "2 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "3 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "4 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", + "0 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "1 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + "2 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + "3 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + "4 202515 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", "\n", " Promo Período Limitado? EAM Categoria Cód. Combo Código do Item \\\n", - "0 NaN Não PERF. FEMININA NaN 85268 \n", - "1 NaN Não PERF. FEMININA NaN 93541 \n", - "2 NaN Não PERF. FEMININA NaN 53138 \n", - "3 NaN Não PERF. FEMININA NaN 50762 \n", - "4 NaN Não PERF. FEMININA NaN 49803 \n", + "0 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "1 NaN Não PERF. FEMININA NaN 52107 \n", + "2 NaN Não PERF. FEMININA NaN 50271 \n", + "3 NaN Não PERF. FEMININA NaN 57550 \n", + "4 NaN Não PERF. FEMININA NaN 52943 \n", "\n", - " Descrição do Item \\\n", - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "1 DIVA ESPLÊNDIDA DESODORANTE COLONIA 100ml \n", - "2 EUDORA IMENSI DESODORANTE COLÔNIA SANCHO 100 ML \n", - "3 EUDORA VELVET SENSUAL DESODORANTE COLÔNIA 100ML \n", - "4 CHIC DES COL RETRO 95ml V2 \n", + " Descrição do Item \\\n", + "0 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "1 EUDORA DIVA FABULOSA DESODORANTE COLONIA 100ML \n", + "2 EUDORA DESODORANTE COLÔNIA KISS ME NOW 50ml VE... \n", + "3 EUDORA VELVET MILANO DESODORANTE COLÔNIA 100ML \n", + "4 Eudora Magnific Rouge Camélia Des Col 75 ML \n", "\n", " Chamada Promocional Valor do Guia \\\n", - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "1 FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: DIVA ESP... 139.9 \n", - "2 FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: EUDORA I... 149.9 \n", - "3 FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: EUDORA V... 119.9 \n", - "4 FESTIVAL DE PERFUMARIA - ATÉ 40% OFF: CHIC DES... 119.9 \n", + "0 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.90 \n", + "1 EUDORA DIVA FABULOSA DESODORANTE COLONIA 100ML... 139.90 \n", + "2 EUDORA DESODORANTE COLÔNIA KISS ME NOW 50ml VE... 99.99 \n", + "3 EUDORA VELVET MILANO DESODORANTE COLÔNIA 100ML... 119.90 \n", + "4 Eudora Magnific Rouge Camélia Des Col 75 ML | ... 134.90 \n", "\n", " Preço Promocionado % de Desconto RE compra por RE Vende por \\\n", - "0 174.9 0.255 122.43 174.9 \n", - "1 89.9 0.357 62.93 89.9 \n", - "2 104.9 0.300 73.43 104.9 \n", - "3 68.9 0.425 48.23 68.9 \n", - "4 83.9 0.300 58.73 83.9 \n", + "0 84.9 0.292 59.43 84.9 \n", + "1 99.9 0.286 69.93 99.9 \n", + "2 69.9 0.301 48.93 69.9 \n", + "3 79.9 0.334 55.93 79.9 \n", + "4 104.9 0.222 73.43 104.9 \n", "\n", " RE lucra (R$) \n", - "0 52.47 \n", - "1 26.97 \n", - "2 31.47 \n", - "3 20.67 \n", - "4 25.17 " + "0 25.47 \n", + "1 29.97 \n", + "2 20.97 \n", + "3 23.97 \n", + "4 31.47 " ] }, - "execution_count": 156, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1317,7 +1281,7 @@ }, { "cell_type": "code", - "execution_count": 157, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1366,168 +1330,168 @@ " \n", " \n", " 0\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", - " 85268\n", - " 56572\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", + " 94060\n", + " 94060\n", " \n", " \n", " 1\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", - " 85268\n", - " 56572\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", + " 94060\n", + " 94060\n", " \n", " \n", " 2\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", - " 85268\n", - " 56572\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", + " 94060\n", + " 94060\n", " \n", " \n", " 3\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", - " 85268\n", - " 56572\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", + " 94060\n", + " 94060\n", " \n", " \n", " 4\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 85268\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", - " 85268\n", - " 56572\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", + " 94060\n", + " 94060\n", " \n", " \n", "\n", "" ], "text/plain": [ - " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", - "0 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "1 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "2 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "3 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "4 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", + "0 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "1 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "2 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "3 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "4 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", "\n", " Promo Período Limitado? EAM Categoria Cód. Combo Código do Item \\\n", - "0 NaN Não PERF. FEMININA NaN 85268 \n", - "1 NaN Não PERF. FEMININA NaN 85268 \n", - "2 NaN Não PERF. FEMININA NaN 85268 \n", - "3 NaN Não PERF. FEMININA NaN 85268 \n", - "4 NaN Não PERF. FEMININA NaN 85268 \n", + "0 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "1 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "2 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "3 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "4 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", "\n", - " Descrição do Item \\\n", - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "1 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "2 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "3 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "4 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", + " Descrição do Item \\\n", + "0 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "1 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "2 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "3 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "4 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", "\n", " Chamada Promocional Valor do Guia \\\n", - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "1 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "2 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "3 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "4 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", + "0 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "1 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "2 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "3 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "4 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", "\n", " Preço Promocionado % de Desconto RE compra por RE Vende por \\\n", - "0 174.9 0.255 122.43 174.9 \n", - "1 174.9 0.255 122.43 174.9 \n", - "2 174.9 0.255 122.43 174.9 \n", - "3 174.9 0.255 122.43 174.9 \n", - "4 174.9 0.255 122.43 174.9 \n", + "0 84.9 0.292 59.43 84.9 \n", + "1 84.9 0.292 59.43 84.9 \n", + "2 84.9 0.292 59.43 84.9 \n", + "3 84.9 0.292 59.43 84.9 \n", + "4 84.9 0.292 59.43 84.9 \n", "\n", " RE lucra (R$) SKU SKU_FINAL \n", - "0 52.47 85268 56572 \n", - "1 52.47 85268 56572 \n", - "2 52.47 85268 56572 \n", - "3 52.47 85268 56572 \n", - "4 52.47 85268 56572 " + "0 25.47 94060 94060 \n", + "1 25.47 94060 94060 \n", + "2 25.47 94060 94060 \n", + "3 25.47 94060 94060 \n", + "4 25.47 94060 94060 " ] }, - "execution_count": 157, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1539,7 +1503,7 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -1548,7 +1512,7 @@ }, { "cell_type": "code", - "execution_count": 159, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -1557,7 +1521,7 @@ }, { "cell_type": "code", - "execution_count": 160, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -1604,158 +1568,158 @@ " \n", " \n", " 0\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " \n", " \n", " 1\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " \n", " \n", " 2\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " \n", " \n", " 3\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " \n", " \n", " 4\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234...\n", - " 234.9\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 94060\n", + " EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ...\n", + " 119.9\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " \n", " \n", "\n", "" ], "text/plain": [ - " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", - "0 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "1 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "2 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "3 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "4 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", + "0 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "1 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "2 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "3 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "4 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", "\n", " Promo Período Limitado? EAM Categoria Cód. Combo Código do Item \\\n", - "0 NaN Não PERF. FEMININA NaN 56572 \n", - "1 NaN Não PERF. FEMININA NaN 56572 \n", - "2 NaN Não PERF. FEMININA NaN 56572 \n", - "3 NaN Não PERF. FEMININA NaN 56572 \n", - "4 NaN Não PERF. FEMININA NaN 56572 \n", + "0 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "1 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "2 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "3 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "4 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", "\n", - " Descrição do Item \\\n", - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "1 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "2 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "3 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", - "4 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml \n", + " Descrição do Item \\\n", + "0 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "1 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "2 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "3 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", + "4 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML \n", "\n", " Chamada Promocional Valor do Guia \\\n", - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "1 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "2 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "3 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", - "4 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml | DE R$234... 234.9 \n", + "0 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "1 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "2 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "3 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", + "4 FGCF MOVIMENTO AUTO CUIDADO (13 a 25 OUTUBRO) ... 119.9 \n", "\n", " Preço Promocionado % de Desconto RE compra por RE Vende por \\\n", - "0 174.9 0.255 122.43 174.9 \n", - "1 174.9 0.255 122.43 174.9 \n", - "2 174.9 0.255 122.43 174.9 \n", - "3 174.9 0.255 122.43 174.9 \n", - "4 174.9 0.255 122.43 174.9 \n", + "0 84.9 0.292 59.43 84.9 \n", + "1 84.9 0.292 59.43 84.9 \n", + "2 84.9 0.292 59.43 84.9 \n", + "3 84.9 0.292 59.43 84.9 \n", + "4 84.9 0.292 59.43 84.9 \n", "\n", " RE lucra (R$) \n", - "0 52.47 \n", - "1 52.47 \n", - "2 52.47 \n", - "3 52.47 \n", - "4 52.47 " + "0 25.47 \n", + "1 25.47 \n", + "2 25.47 \n", + "3 25.47 \n", + "4 25.47 " ] }, - "execution_count": 160, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1766,7 +1730,7 @@ }, { "cell_type": "code", - "execution_count": 161, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -1775,7 +1739,7 @@ }, { "cell_type": "code", - "execution_count": 162, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -1784,7 +1748,7 @@ }, { "cell_type": "code", - "execution_count": 163, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -1834,22 +1798,22 @@ " \n", " \n", " 0\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", + " 94060\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20968\n", " SE\n", @@ -1858,46 +1822,46 @@ " \n", " \n", " 1\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", + " 94060\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20969\n", " AL\n", " HIB MARECHAL DEOD\n", - " HARY\n", + " THAYLLAN\n", " \n", " \n", " 2\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", + " 94060\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20970\n", " BA\n", @@ -1906,22 +1870,22 @@ " \n", " \n", " 3\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", + " 94060\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20986\n", " BA\n", @@ -1930,22 +1894,22 @@ " \n", " \n", " 4\n", - " 202513\n", - " Guia CF\n", + " 202515\n", + " Fora Guia\n", " Promoção CF\n", " Movimentar Flow\n", " Desconto Direto\n", - " NaN\n", + " 13/10 a 25/10\n", " Não\n", " PERF. FEMININA\n", " NaN\n", - " 56572\n", + " 94060\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20988\n", " BA\n", @@ -1958,38 +1922,38 @@ "" ], "text/plain": [ - " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", - "0 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "1 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "2 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "3 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", - "4 202513 Guia CF Promoção CF Movimentar Flow Desconto Direto \n", + " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção Tipo_mecanica \\\n", + "0 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "1 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "2 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "3 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", + "4 202515 Fora Guia Promoção CF Movimentar Flow Desconto Direto \n", "\n", " Promo Período Limitado? EAM Categoria Cód. Combo Código do Item \\\n", - "0 NaN Não PERF. FEMININA NaN 56572 \n", - "1 NaN Não PERF. FEMININA NaN 56572 \n", - "2 NaN Não PERF. FEMININA NaN 56572 \n", - "3 NaN Não PERF. FEMININA NaN 56572 \n", - "4 NaN Não PERF. FEMININA NaN 56572 \n", + "0 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "1 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "2 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "3 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", + "4 13/10 a 25/10 Não PERF. FEMININA NaN 94060 \n", "\n", " ... Preço Promocionado % de Desconto RE compra por RE Vende por \\\n", - "0 ... 174.9 0.255 122.43 174.9 \n", - "1 ... 174.9 0.255 122.43 174.9 \n", - "2 ... 174.9 0.255 122.43 174.9 \n", - "3 ... 174.9 0.255 122.43 174.9 \n", - "4 ... 174.9 0.255 122.43 174.9 \n", + "0 ... 84.9 0.292 59.43 84.9 \n", + "1 ... 84.9 0.292 59.43 84.9 \n", + "2 ... 84.9 0.292 59.43 84.9 \n", + "3 ... 84.9 0.292 59.43 84.9 \n", + "4 ... 84.9 0.292 59.43 84.9 \n", "\n", " RE lucra (R$) MATCH PDV UF DESCRIÇÃO PDV ANALISTA \n", - "0 52.47 1 20968 SE HIB ITABAIANINHA MARCYARA \n", - "1 52.47 1 20969 AL HIB MARECHAL DEOD HARY \n", - "2 52.47 1 20970 BA ER SAO SEBASTIAO DARLIN \n", - "3 52.47 1 20986 BA HIB OLINDINA LUCAS \n", - "4 52.47 1 20988 BA HIB QUEIMADAS DARLIN \n", + "0 25.47 1 20968 SE HIB ITABAIANINHA MARCYARA \n", + "1 25.47 1 20969 AL HIB MARECHAL DEOD THAYLLAN \n", + "2 25.47 1 20970 BA ER SAO SEBASTIAO DARLIN \n", + "3 25.47 1 20986 BA HIB OLINDINA LUCAS \n", + "4 25.47 1 20988 BA HIB QUEIMADAS DARLIN \n", "\n", "[5 rows x 23 columns]" ] }, - "execution_count": 163, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -2000,7 +1964,7 @@ }, { "cell_type": "code", - "execution_count": 164, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -2009,7 +1973,7 @@ }, { "cell_type": "code", - "execution_count": 165, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -2024,7 +1988,7 @@ " dtype='object')" ] }, - "execution_count": 165, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2035,7 +1999,7 @@ }, { "cell_type": "code", - "execution_count": 166, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -2047,7 +2011,7 @@ " dtype='object')" ] }, - "execution_count": 166, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -2058,7 +2022,7 @@ }, { "cell_type": "code", - "execution_count": 167, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -2098,73 +2062,73 @@ " \n", " \n", " 0\n", - " 20968\n", - " 47814\n", - " 47814\n", - " 3\n", - " 0\n", - " 0\n", - " C\n", - " DESODORANTES\n", - " 78\n", - " 3\n", - " 2\n", + " 20998\n", + " 51213\n", + " 51213\n", + " 92\n", + " 21\n", + " 753\n", + " B\n", + " PERFUMARIA\n", + " 1.0\n", + " 258.0\n", + " 0.0\n", " \n", " \n", " 1\n", - " 20968\n", - " 47888\n", - " 47888\n", - " 11\n", + " 20998\n", + " 83960\n", + " 83960\n", + " 10\n", + " 5\n", " 0\n", - " 0\n", - " B\n", - " CUIDADOS COM A PELE\n", - " 45\n", - " 4\n", - " 2\n", + " C\n", + " DESODORANTES\n", + " 4.0\n", + " 11.0\n", + " 0.0\n", " \n", " \n", " 2\n", - " 20968\n", - " 49459\n", - " 49459\n", + " 20998\n", + " 75293\n", + " 75293\n", + " 6\n", + " 1\n", " 0\n", + " B\n", + " MAQUIAGEM\n", + " 3.0\n", + " 0.0\n", + " 0.0\n", + " \n", + " \n", + " 3\n", + " 20998\n", + " 75888\n", + " 75888\n", + " 3\n", " 0\n", " 0\n", " C\n", " MAQUIAGEM\n", - " 247\n", - " 0\n", - " 0\n", - " \n", - " \n", - " 3\n", - " 20968\n", - " 49543\n", - " 49543\n", - " 8\n", - " 0\n", - " 0\n", - " A\n", - " PERFUMARIA\n", - " 32\n", - " 2\n", - " 2\n", + " 27.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", " 4\n", - " 20968\n", - " 50093\n", - " 50093\n", - " 0\n", - " 0\n", - " 0\n", - " E\n", - " CABELOS\n", - " 0\n", + " 20998\n", + " 52898\n", + " 52898\n", + " 341\n", " 0\n", " 0\n", + " B\n", + " PERFUMARIA\n", + " 1.0\n", + " 43.0\n", + " 0.0\n", " \n", " \n", "\n", @@ -2172,28 +2136,28 @@ ], "text/plain": [ " pdv SKU SKU_FINAL ESTOQUE ATUAL ESTOQUE EM TRANSITO PEDIDO PENDENTE \\\n", - "0 20968 47814 47814 3 0 0 \n", - "1 20968 47888 47888 11 0 0 \n", - "2 20968 49459 49459 0 0 0 \n", - "3 20968 49543 49543 8 0 0 \n", - "4 20968 50093 50093 0 0 0 \n", + "0 20998 51213 51213 92 21 753 \n", + "1 20998 83960 83960 10 5 0 \n", + "2 20998 75293 75293 6 1 0 \n", + "3 20998 75888 75888 3 0 0 \n", + "4 20998 52898 52898 341 0 0 \n", "\n", - " Curva CATEGORIA DiasSemVenda nextcycleprojection \\\n", - "0 C DESODORANTES 78 3 \n", - "1 B CUIDADOS COM A PELE 45 4 \n", - "2 C MAQUIAGEM 247 0 \n", - "3 A PERFUMARIA 32 2 \n", - "4 E CABELOS 0 0 \n", + " Curva CATEGORIA DiasSemVenda nextcycleprojection \\\n", + "0 B PERFUMARIA 1.0 258.0 \n", + "1 C DESODORANTES 4.0 11.0 \n", + "2 B MAQUIAGEM 3.0 0.0 \n", + "3 C MAQUIAGEM 27.0 0.0 \n", + "4 B PERFUMARIA 1.0 43.0 \n", "\n", " secondtonextcycleprojection \n", - "0 2 \n", - "1 2 \n", - "2 0 \n", - "3 2 \n", - "4 0 " + "0 0.0 \n", + "1 0.0 \n", + "2 0.0 \n", + "3 0.0 \n", + "4 0.0 " ] }, - "execution_count": 167, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -2204,7 +2168,7 @@ }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -2213,7 +2177,7 @@ }, { "cell_type": "code", - "execution_count": 169, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -2222,7 +2186,7 @@ }, { "cell_type": "code", - "execution_count": 170, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -2231,7 +2195,7 @@ }, { "cell_type": "code", - "execution_count": 171, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -2246,7 +2210,7 @@ " dtype='object')" ] }, - "execution_count": 171, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -2257,7 +2221,7 @@ }, { "cell_type": "code", - "execution_count": 172, + "execution_count": 41, "metadata": {}, "outputs": [], "source": [ @@ -2266,7 +2230,7 @@ }, { "cell_type": "code", - "execution_count": 173, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -2297,28 +2261,28 @@ " \n", " \n", " 0\n", - " 47814\n", - " 20968\n", + " 51213\n", + " 20998\n", " \n", " \n", " 1\n", - " 47888\n", - " 20968\n", + " 83960\n", + " 20998\n", " \n", " \n", " 2\n", - " 49459\n", - " 20968\n", + " 75293\n", + " 20998\n", " \n", " \n", " 3\n", - " 49543\n", - " 20968\n", + " 75888\n", + " 20998\n", " \n", " \n", " 4\n", - " 50093\n", - " 20968\n", + " 52898\n", + " 20998\n", " \n", " \n", "\n", @@ -2326,14 +2290,14 @@ ], "text/plain": [ " SKU_FINAL pdv\n", - "0 47814 20968\n", - "1 47888 20968\n", - "2 49459 20968\n", - "3 49543 20968\n", - "4 50093 20968" + "0 51213 20998\n", + "1 83960 20998\n", + "2 75293 20998\n", + "3 75888 20998\n", + "4 52898 20998" ] }, - "execution_count": 173, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -2344,7 +2308,7 @@ }, { "cell_type": "code", - "execution_count": 276, + "execution_count": 43, "metadata": {}, "outputs": [ { @@ -2383,63 +2347,35 @@ " \n", " \n", " \n", - " 711\n", - " 20968\n", - " 93403\n", - " 93403\n", - " 1\n", - " 1\n", - " 3\n", - " C\n", - " INFANTIL\n", - " 18\n", - " 3\n", - " 1\n", - " \n", - " \n", - " 1857\n", - " 20969\n", - " 93403\n", - " 93403\n", - " 0\n", - " 0\n", - " 0\n", - " C\n", - " INFANTIL\n", - " 53\n", - " 1\n", - " 0\n", - " \n", - " \n", - " 5032\n", + " 793\n", " 20991\n", " 93403\n", " 93403\n", - " 5\n", - " 0\n", " 0\n", + " 1\n", + " 24\n", " C\n", " INFANTIL\n", - " 60\n", - " 9\n", - " 2\n", + " 5.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 5282\n", - " 20992\n", + " 10946\n", + " 20998\n", " 93403\n", " 93403\n", " 0\n", - " 0\n", - " 0\n", - " E\n", - " INFANTIL\n", - " 0\n", " 15\n", - " 3\n", + " 24\n", + " C\n", + " INFANTIL\n", + " 5.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 7541\n", + " 35510\n", " 20995\n", " 93403\n", " 93403\n", @@ -2448,157 +2384,202 @@ " 0\n", " C\n", " INFANTIL\n", - " 4\n", - " 5\n", - " 1\n", + " 13.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 8382\n", + " 45664\n", " 20996\n", " 93403\n", " 93403\n", - " 1\n", - " 12\n", - " 17\n", - " C\n", - " INFANTIL\n", - " 3\n", - " 10\n", - " 2\n", - " \n", - " \n", - " 10303\n", - " 20997\n", - " 93403\n", - " 93403\n", - " 9\n", - " 3\n", + " 0\n", + " 0\n", " 0\n", " C\n", " INFANTIL\n", - " 2\n", - " 24\n", - " 5\n", + " 1.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 10461\n", - " 20998\n", - " 93403\n", - " 93403\n", - " 4\n", - " 22\n", - " 34\n", - " C\n", - " INFANTIL\n", - " 2\n", - " 55\n", - " 9\n", - " \n", - " \n", - " 13097\n", + " 53287\n", " 21278\n", " 93403\n", " 93403\n", - " 5\n", + " 0\n", " 0\n", " 0\n", " C\n", " INFANTIL\n", - " 2\n", - " 15\n", - " 2\n", + " 6.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 13702\n", + " 73547\n", + " 20969\n", + " 93403\n", + " 93403\n", + " 0\n", + " 0\n", + " 0\n", + " C\n", + " INFANTIL\n", + " 62.0\n", + " 0.0\n", + " 0.0\n", + " \n", + " \n", + " 77615\n", + " 20992\n", + " 93403\n", + " 93403\n", + " 0\n", + " 0\n", + " 0\n", + " C\n", + " INFANTIL\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " \n", + " \n", + " 92374\n", + " 20968\n", + " 93403\n", + " 93403\n", + " 0\n", + " 0\n", + " 3\n", + " C\n", + " INFANTIL\n", + " 6.0\n", + " 0.0\n", + " 0.0\n", + " \n", + " \n", + " 92766\n", " 21495\n", " 93403\n", " 93403\n", - " 2\n", + " 0\n", " 0\n", " 0\n", " C\n", " INFANTIL\n", - " 111\n", - " 3\n", - " 1\n", + " 5.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 14577\n", + " 107035\n", + " 20997\n", + " 93403\n", + " 93403\n", + " 0\n", + " 0\n", + " 0\n", + " C\n", + " INFANTIL\n", + " 1.0\n", + " 0.0\n", + " 0.0\n", + " \n", + " \n", + " 109390\n", + " 24255\n", + " 93403\n", + " 93403\n", + " 0\n", + " 0\n", + " 0\n", + " C\n", + " INFANTIL\n", + " 6.0\n", + " 0.0\n", + " 0.0\n", + " \n", + " \n", + " 117431\n", " 22541\n", " 93403\n", " 93403\n", " 0\n", - " 2\n", + " 1\n", " 0\n", " C\n", " INFANTIL\n", - " 81\n", - " 5\n", - " 1\n", + " 3.0\n", + " 0.0\n", + " 0.0\n", " \n", " \n", - " 18488\n", - " 24255\n", + " 393788\n", + " 21007\n", " 93403\n", " 93403\n", - " 1\n", " 0\n", " 0\n", - " E\n", + " 0\n", + " None\n", " INFANTIL\n", - " 0\n", - " 15\n", - " 3\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", "\n", "" ], "text/plain": [ - " pdv SKU SKU_FINAL ESTOQUE ATUAL ESTOQUE EM TRANSITO \\\n", - "711 20968 93403 93403 1 1 \n", - "1857 20969 93403 93403 0 0 \n", - "5032 20991 93403 93403 5 0 \n", - "5282 20992 93403 93403 0 0 \n", - "7541 20995 93403 93403 0 0 \n", - "8382 20996 93403 93403 1 12 \n", - "10303 20997 93403 93403 9 3 \n", - "10461 20998 93403 93403 4 22 \n", - "13097 21278 93403 93403 5 0 \n", - "13702 21495 93403 93403 2 0 \n", - "14577 22541 93403 93403 0 2 \n", - "18488 24255 93403 93403 1 0 \n", + " pdv SKU SKU_FINAL ESTOQUE ATUAL ESTOQUE EM TRANSITO \\\n", + "793 20991 93403 93403 0 1 \n", + "10946 20998 93403 93403 0 15 \n", + "35510 20995 93403 93403 0 0 \n", + "45664 20996 93403 93403 0 0 \n", + "53287 21278 93403 93403 0 0 \n", + "73547 20969 93403 93403 0 0 \n", + "77615 20992 93403 93403 0 0 \n", + "92374 20968 93403 93403 0 0 \n", + "92766 21495 93403 93403 0 0 \n", + "107035 20997 93403 93403 0 0 \n", + "109390 24255 93403 93403 0 0 \n", + "117431 22541 93403 93403 0 1 \n", + "393788 21007 93403 93403 0 0 \n", "\n", - " PEDIDO PENDENTE Curva CATEGORIA DiasSemVenda nextcycleprojection \\\n", - "711 3 C INFANTIL 18 3 \n", - "1857 0 C INFANTIL 53 1 \n", - "5032 0 C INFANTIL 60 9 \n", - "5282 0 E INFANTIL 0 15 \n", - "7541 0 C INFANTIL 4 5 \n", - "8382 17 C INFANTIL 3 10 \n", - "10303 0 C INFANTIL 2 24 \n", - "10461 34 C INFANTIL 2 55 \n", - "13097 0 C INFANTIL 2 15 \n", - "13702 0 C INFANTIL 111 3 \n", - "14577 0 C INFANTIL 81 5 \n", - "18488 0 E INFANTIL 0 15 \n", + " PEDIDO PENDENTE Curva CATEGORIA DiasSemVenda nextcycleprojection \\\n", + "793 24 C INFANTIL 5.0 0.0 \n", + "10946 24 C INFANTIL 5.0 0.0 \n", + "35510 0 C INFANTIL 13.0 0.0 \n", + "45664 0 C INFANTIL 1.0 0.0 \n", + "53287 0 C INFANTIL 6.0 0.0 \n", + "73547 0 C INFANTIL 62.0 0.0 \n", + "77615 0 C INFANTIL 0.0 0.0 \n", + "92374 3 C INFANTIL 6.0 0.0 \n", + "92766 0 C INFANTIL 5.0 0.0 \n", + "107035 0 C INFANTIL 1.0 0.0 \n", + "109390 0 C INFANTIL 6.0 0.0 \n", + "117431 0 C INFANTIL 3.0 0.0 \n", + "393788 0 None INFANTIL NaN NaN \n", "\n", - " secondtonextcycleprojection \n", - "711 1 \n", - "1857 0 \n", - "5032 2 \n", - "5282 3 \n", - "7541 1 \n", - "8382 2 \n", - "10303 5 \n", - "10461 9 \n", - "13097 2 \n", - "13702 1 \n", - "14577 1 \n", - "18488 3 " + " secondtonextcycleprojection \n", + "793 0.0 \n", + "10946 0.0 \n", + "35510 0.0 \n", + "45664 0.0 \n", + "53287 0.0 \n", + "73547 0.0 \n", + "77615 0.0 \n", + "92374 0.0 \n", + "92766 0.0 \n", + "107035 0.0 \n", + "109390 0.0 \n", + "117431 0.0 \n", + "393788 NaN " ] }, - "execution_count": 276, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -2609,16 +2590,16 @@ }, { "cell_type": "code", - "execution_count": 174, + "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(11606, 34)" + "(10375, 34)" ] }, - "execution_count": 174, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -2630,7 +2611,7 @@ }, { "cell_type": "code", - "execution_count": 175, + "execution_count": 45, "metadata": {}, "outputs": [], "source": [ @@ -2639,7 +2620,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 46, "metadata": {}, "outputs": [ { @@ -2657,7 +2638,7 @@ " dtype='object')" ] }, - "execution_count": 177, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -2668,7 +2649,7 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -2678,27 +2659,27 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - "1 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - "2 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - "3 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - "4 EUDORA EAU DE PARFUM ROSÉ V2, 75 ml\n", - " ... \n", - "10651 SIÀGE ELIXIR CAPILAR TRATAMENTO OVERNIGHT NUTR...\n", - "10652 SIÀGE ELIXIR CAPILAR TRATAMENTO OVERNIGHT NUTR...\n", - "10653 SIÀGE ELIXIR CAPILAR TRATAMENTO OVERNIGHT NUTR...\n", - "10654 SIÀGE ELIXIR CAPILAR TRATAMENTO OVERNIGHT NUTR...\n", - "10655 SIÀGE ELIXIR CAPILAR TRATAMENTO OVERNIGHT NUTR...\n", - "Name: Descrição do Item, Length: 10656, dtype: object" + "0 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + "1 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + "2 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + "3 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + "4 EUDORA VELVET DIVINE DESODORANTE COLÔNIA 100ML\n", + " ... \n", + "8923 ESTOJO LA VICTORIE INTENSE NAMORADOS 2025\n", + "8924 ESTOJO LA VICTORIE INTENSE NAMORADOS 2025\n", + "8925 ESTOJO LA VICTORIE INTENSE NAMORADOS 2025\n", + "8926 ESTOJO LA VICTORIE INTENSE NAMORADOS 2025\n", + "8927 ESTOJO LA VICTORIE INTENSE NAMORADOS 2025\n", + "Name: Descrição do Item, Length: 8928, dtype: object" ] }, - "execution_count": 179, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -2709,7 +2690,7 @@ }, { "cell_type": "code", - "execution_count": 180, + "execution_count": 49, "metadata": {}, "outputs": [ { @@ -2760,21 +2741,21 @@ " \n", " 0\n", " 20968\n", - " 56572\n", - " 56572\n", - " 35\n", + " 94060\n", + " 94060\n", + " 5\n", " 0\n", - " None\n", - " B\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 12.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20968\n", " SE\n", @@ -2784,45 +2765,45 @@ " \n", " 1\n", " 20969\n", - " 56572\n", - " 56572\n", - " 30\n", + " 94060\n", + " 94060\n", + " 1\n", " 0\n", - " None\n", - " B\n", + " 5\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 11.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20969\n", " AL\n", " HIB MARECHAL DEOD\n", - " HARY\n", + " THAYLLAN\n", " \n", " \n", " 2\n", " 20970\n", - " 56572\n", - " 56572\n", - " 81\n", + " 94060\n", + " 94060\n", + " 10\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 3.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20970\n", " BA\n", @@ -2832,21 +2813,21 @@ " \n", " 3\n", " 20986\n", - " 56572\n", - " 56572\n", - " 71\n", + " 94060\n", + " 94060\n", + " 11\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20986\n", " BA\n", @@ -2856,21 +2837,21 @@ " \n", " 4\n", " 20988\n", - " 56572\n", - " 56572\n", - " 51\n", + " 94060\n", + " 94060\n", + " 9\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20988\n", " BA\n", @@ -2880,21 +2861,21 @@ " \n", " 5\n", " 20989\n", - " 56572\n", - " 56572\n", - " 95\n", + " 94060\n", + " 94060\n", + " 13\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20989\n", " BA\n", @@ -2904,45 +2885,45 @@ " \n", " 6\n", " 20991\n", - " 56572\n", - " 56572\n", - " 35\n", + " 94060\n", + " 94060\n", + " 8\n", " 0\n", - " None\n", - " B\n", + " 30\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 6.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20991\n", " AL\n", " HIB CAMPO ALEGRE\n", - " HARY\n", + " THAYLLAN\n", " \n", " \n", " 7\n", " 20992\n", - " 56572\n", - " 56572\n", - " 149\n", + " 94060\n", + " 94060\n", + " 10\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20992\n", " BA\n", @@ -2952,21 +2933,21 @@ " \n", " 8\n", " 20993\n", - " 56572\n", - " 56572\n", + " 94060\n", + " 94060\n", + " 35\n", " 0\n", - " 291\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 1.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20993\n", " BA\n", @@ -2976,21 +2957,21 @@ " \n", " 9\n", " 20994\n", - " 56572\n", - " 56572\n", - " 218\n", + " 94060\n", + " 94060\n", + " 29\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 4.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20994\n", " BA\n", @@ -3000,21 +2981,21 @@ " \n", " 10\n", " 20995\n", - " 56572\n", - " 56572\n", - " 55\n", + " 94060\n", + " 94060\n", " 0\n", - " None\n", - " B\n", + " 0\n", + " 4\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 32.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20995\n", " SE\n", @@ -3024,69 +3005,69 @@ " \n", " 11\n", " 20996\n", - " 56572\n", - " 56572\n", - " 69\n", + " 94060\n", + " 94060\n", + " 2\n", " 0\n", - " None\n", - " B\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 4.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20996\n", " AL\n", " ER ANTARES\n", - " LAIS\n", + " JEFFERSON\n", " \n", " \n", " 12\n", " 20997\n", - " 56572\n", - " 56572\n", - " 231\n", + " 94060\n", + " 94060\n", + " 6\n", " 0\n", - " None\n", - " B\n", + " 11\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20997\n", " AL\n", " ER PITANGUINHA\n", - " LAIS\n", + " LUCAS\n", " \n", " \n", " 13\n", " 20998\n", - " 56572\n", - " 56572\n", - " 212\n", + " 94060\n", + " 94060\n", " 0\n", - " None\n", - " B\n", + " 0\n", + " 14\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 26.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20998\n", " AL\n", @@ -3096,21 +3077,21 @@ " \n", " 14\n", " 20999\n", - " 56572\n", - " 56572\n", - " 127\n", + " 94060\n", + " 94060\n", + " 17\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 4.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 20999\n", " BA\n", @@ -3120,21 +3101,21 @@ " \n", " 15\n", " 21000\n", - " 56572\n", - " 56572\n", - " 57\n", + " 94060\n", + " 94060\n", + " 7\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 21000\n", " BA\n", @@ -3144,21 +3125,21 @@ " \n", " 16\n", " 21001\n", - " 56572\n", - " 56572\n", - " 70\n", + " 94060\n", + " 94060\n", + " 7\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 3.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 21001\n", " BA\n", @@ -3168,21 +3149,21 @@ " \n", " 17\n", " 21278\n", - " 56572\n", - " 56572\n", - " 81\n", + " 94060\n", + " 94060\n", " 0\n", - " None\n", - " B\n", + " 0\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 28.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 21278\n", " SE\n", @@ -3192,21 +3173,21 @@ " \n", " 18\n", " 21375\n", - " 56572\n", - " 56572\n", - " 107\n", + " 94060\n", + " 94060\n", + " 15\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 21375\n", " BA\n", @@ -3216,21 +3197,21 @@ " \n", " 19\n", " 21383\n", - " 56572\n", - " 56572\n", - " 95\n", + " 94060\n", + " 94060\n", + " 13\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", " ...\n", - " 174.9\n", - " 0.255\n", - " 122.43\n", - " 174.9\n", - " 52.47\n", + " 84.9\n", + " 0.292\n", + " 59.43\n", + " 84.9\n", + " 25.47\n", " 1\n", " 21383\n", " BA\n", @@ -3244,97 +3225,97 @@ ], "text/plain": [ " pdv SKU SKU_FINAL ESTOQUE ATUAL ESTOQUE EM TRANSITO PEDIDO PENDENTE \\\n", - "0 20968 56572 56572 35 0 None \n", - "1 20969 56572 56572 30 0 None \n", - "2 20970 56572 56572 81 0 None \n", - "3 20986 56572 56572 71 0 None \n", - "4 20988 56572 56572 51 0 None \n", - "5 20989 56572 56572 95 0 None \n", - "6 20991 56572 56572 35 0 None \n", - "7 20992 56572 56572 149 0 None \n", - "8 20993 56572 56572 0 291 None \n", - "9 20994 56572 56572 218 0 None \n", - "10 20995 56572 56572 55 0 None \n", - "11 20996 56572 56572 69 0 None \n", - "12 20997 56572 56572 231 0 None \n", - "13 20998 56572 56572 212 0 None \n", - "14 20999 56572 56572 127 0 None \n", - "15 21000 56572 56572 57 0 None \n", - "16 21001 56572 56572 70 0 None \n", - "17 21278 56572 56572 81 0 None \n", - "18 21375 56572 56572 107 0 None \n", - "19 21383 56572 56572 95 0 None \n", + "0 20968 94060 94060 5 0 0 \n", + "1 20969 94060 94060 1 0 5 \n", + "2 20970 94060 94060 10 0 0 \n", + "3 20986 94060 94060 11 0 0 \n", + "4 20988 94060 94060 9 0 0 \n", + "5 20989 94060 94060 13 0 0 \n", + "6 20991 94060 94060 8 0 30 \n", + "7 20992 94060 94060 10 0 0 \n", + "8 20993 94060 94060 35 0 0 \n", + "9 20994 94060 94060 29 0 0 \n", + "10 20995 94060 94060 0 0 4 \n", + "11 20996 94060 94060 2 0 0 \n", + "12 20997 94060 94060 6 0 11 \n", + "13 20998 94060 94060 0 0 14 \n", + "14 20999 94060 94060 17 0 0 \n", + "15 21000 94060 94060 7 0 0 \n", + "16 21001 94060 94060 7 0 0 \n", + "17 21278 94060 94060 0 0 0 \n", + "18 21375 94060 94060 15 0 0 \n", + "19 21383 94060 94060 13 0 0 \n", "\n", " Curva CATEGORIA DiasSemVenda nextcycleprojection ... \\\n", - "0 B PERFUMARIA 0.0 0.0 ... \n", - "1 B PERFUMARIA 0.0 0.0 ... \n", - "2 E PERFUMARIA 0.0 0.0 ... \n", - "3 E PERFUMARIA 0.0 0.0 ... \n", - "4 E PERFUMARIA 0.0 0.0 ... \n", - "5 E PERFUMARIA 0.0 0.0 ... \n", - "6 B PERFUMARIA 0.0 0.0 ... \n", - "7 E PERFUMARIA 0.0 0.0 ... \n", - "8 E PERFUMARIA 0.0 0.0 ... \n", - "9 E PERFUMARIA 0.0 0.0 ... \n", - "10 B PERFUMARIA 0.0 0.0 ... \n", - "11 B PERFUMARIA 0.0 0.0 ... \n", - "12 B PERFUMARIA 0.0 0.0 ... \n", - "13 B PERFUMARIA 0.0 0.0 ... \n", - "14 E PERFUMARIA 0.0 0.0 ... \n", - "15 E PERFUMARIA 0.0 0.0 ... \n", - "16 E PERFUMARIA 0.0 0.0 ... \n", - "17 B PERFUMARIA 0.0 0.0 ... \n", - "18 E PERFUMARIA 0.0 0.0 ... \n", - "19 E PERFUMARIA 0.0 0.0 ... \n", + "0 C PERFUMARIA 12.0 0.0 ... \n", + "1 C PERFUMARIA 11.0 0.0 ... \n", + "2 C PERFUMARIA 3.0 0.0 ... \n", + "3 C PERFUMARIA 0.0 0.0 ... \n", + "4 C PERFUMARIA 0.0 0.0 ... \n", + "5 C PERFUMARIA 0.0 0.0 ... \n", + "6 C PERFUMARIA 6.0 0.0 ... \n", + "7 C PERFUMARIA 0.0 0.0 ... \n", + "8 C PERFUMARIA 1.0 0.0 ... \n", + "9 C PERFUMARIA 4.0 0.0 ... \n", + "10 C PERFUMARIA 32.0 0.0 ... \n", + "11 C PERFUMARIA 4.0 0.0 ... \n", + "12 C PERFUMARIA 0.0 0.0 ... \n", + "13 C PERFUMARIA 26.0 0.0 ... \n", + "14 C PERFUMARIA 4.0 0.0 ... \n", + "15 C PERFUMARIA 0.0 0.0 ... \n", + "16 C PERFUMARIA 3.0 0.0 ... \n", + "17 C PERFUMARIA 28.0 0.0 ... \n", + "18 C PERFUMARIA 0.0 0.0 ... \n", + "19 C PERFUMARIA 0.0 0.0 ... \n", "\n", " Preço Promocionado % de Desconto RE compra por RE Vende por \\\n", - "0 174.9 0.255 122.43 174.9 \n", - "1 174.9 0.255 122.43 174.9 \n", - "2 174.9 0.255 122.43 174.9 \n", - "3 174.9 0.255 122.43 174.9 \n", - "4 174.9 0.255 122.43 174.9 \n", - "5 174.9 0.255 122.43 174.9 \n", - "6 174.9 0.255 122.43 174.9 \n", - "7 174.9 0.255 122.43 174.9 \n", - "8 174.9 0.255 122.43 174.9 \n", - "9 174.9 0.255 122.43 174.9 \n", - "10 174.9 0.255 122.43 174.9 \n", - "11 174.9 0.255 122.43 174.9 \n", - "12 174.9 0.255 122.43 174.9 \n", - "13 174.9 0.255 122.43 174.9 \n", - "14 174.9 0.255 122.43 174.9 \n", - "15 174.9 0.255 122.43 174.9 \n", - "16 174.9 0.255 122.43 174.9 \n", - "17 174.9 0.255 122.43 174.9 \n", - "18 174.9 0.255 122.43 174.9 \n", - "19 174.9 0.255 122.43 174.9 \n", + "0 84.9 0.292 59.43 84.9 \n", + "1 84.9 0.292 59.43 84.9 \n", + "2 84.9 0.292 59.43 84.9 \n", + "3 84.9 0.292 59.43 84.9 \n", + "4 84.9 0.292 59.43 84.9 \n", + "5 84.9 0.292 59.43 84.9 \n", + "6 84.9 0.292 59.43 84.9 \n", + "7 84.9 0.292 59.43 84.9 \n", + "8 84.9 0.292 59.43 84.9 \n", + "9 84.9 0.292 59.43 84.9 \n", + "10 84.9 0.292 59.43 84.9 \n", + "11 84.9 0.292 59.43 84.9 \n", + "12 84.9 0.292 59.43 84.9 \n", + "13 84.9 0.292 59.43 84.9 \n", + "14 84.9 0.292 59.43 84.9 \n", + "15 84.9 0.292 59.43 84.9 \n", + "16 84.9 0.292 59.43 84.9 \n", + "17 84.9 0.292 59.43 84.9 \n", + "18 84.9 0.292 59.43 84.9 \n", + "19 84.9 0.292 59.43 84.9 \n", "\n", " RE lucra (R$) MATCH PDV UF DESCRIÇÃO PDV ANALISTA \n", - "0 52.47 1 20968 SE HIB ITABAIANINHA MARCYARA \n", - "1 52.47 1 20969 AL HIB MARECHAL DEOD HARY \n", - "2 52.47 1 20970 BA ER SAO SEBASTIAO DARLIN \n", - "3 52.47 1 20986 BA HIB OLINDINA LUCAS \n", - "4 52.47 1 20988 BA HIB QUEIMADAS DARLIN \n", - "5 52.47 1 20989 BA HIB ENTRE RIOS MARCYARA \n", - "6 52.47 1 20991 AL HIB CAMPO ALEGRE HARY \n", - "7 52.47 1 20992 BA ER CONC COITE JEFFERSON \n", - "8 52.47 1 20993 BA ER CANDEIAS DARLIN \n", - "9 52.47 1 20994 BA ER SIMOES FILHO LUCAS \n", - "10 52.47 1 20995 SE ER LAGARTO MARCYARA \n", - "11 52.47 1 20996 AL ER ANTARES LAIS \n", - "12 52.47 1 20997 AL ER PITANGUINHA LAIS \n", - "13 52.47 1 20998 AL CD SERRARIA VA \n", - "14 52.47 1 20999 BA HIB ESPLANADA MARCYARA \n", - "15 52.47 1 21000 BA HIB SANTALUZ DARLIN \n", - "16 52.47 1 21001 BA HIB RIO REAL LUCAS \n", - "17 52.47 1 21278 SE VD SOCORRO JEFFERSON \n", - "18 52.47 1 21375 BA IPIRA HB DARLIN \n", - "19 52.47 1 21383 BA CAPIM GROSSO ER DARLIN \n", + "0 25.47 1 20968 SE HIB ITABAIANINHA MARCYARA \n", + "1 25.47 1 20969 AL HIB MARECHAL DEOD THAYLLAN \n", + "2 25.47 1 20970 BA ER SAO SEBASTIAO DARLIN \n", + "3 25.47 1 20986 BA HIB OLINDINA LUCAS \n", + "4 25.47 1 20988 BA HIB QUEIMADAS DARLIN \n", + "5 25.47 1 20989 BA HIB ENTRE RIOS MARCYARA \n", + "6 25.47 1 20991 AL HIB CAMPO ALEGRE THAYLLAN \n", + "7 25.47 1 20992 BA ER CONC COITE JEFFERSON \n", + "8 25.47 1 20993 BA ER CANDEIAS DARLIN \n", + "9 25.47 1 20994 BA ER SIMOES FILHO LUCAS \n", + "10 25.47 1 20995 SE ER LAGARTO MARCYARA \n", + "11 25.47 1 20996 AL ER ANTARES JEFFERSON \n", + "12 25.47 1 20997 AL ER PITANGUINHA LUCAS \n", + "13 25.47 1 20998 AL CD SERRARIA VA \n", + "14 25.47 1 20999 BA HIB ESPLANADA MARCYARA \n", + "15 25.47 1 21000 BA HIB SANTALUZ DARLIN \n", + "16 25.47 1 21001 BA HIB RIO REAL LUCAS \n", + "17 25.47 1 21278 SE VD SOCORRO JEFFERSON \n", + "18 25.47 1 21375 BA IPIRA HB DARLIN \n", + "19 25.47 1 21383 BA CAPIM GROSSO ER DARLIN \n", "\n", "[20 rows x 34 columns]" ] }, - "execution_count": 180, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -3345,7 +3326,7 @@ }, { "cell_type": "code", - "execution_count": 181, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ @@ -3354,16 +3335,16 @@ }, { "cell_type": "code", - "execution_count": 182, + "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(10656, 40)" + "(8928, 40)" ] }, - "execution_count": 182, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -3375,49 +3356,48 @@ }, { "cell_type": "code", - "execution_count": 183, + "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PDV\n", - "20968 333\n", - "20969 333\n", - "20970 333\n", - "20986 333\n", - "20988 333\n", - "20989 333\n", - "20991 333\n", - "20992 333\n", - "20993 333\n", - "20994 333\n", - "20995 333\n", - "20996 333\n", - "20997 333\n", - "20998 333\n", - "20999 333\n", - "21000 333\n", - "21001 333\n", - "21278 333\n", - "21375 333\n", - "21383 333\n", - "21495 333\n", - "22448 333\n", - "22541 333\n", - "23703 333\n", - "23704 333\n", - "23711 333\n", - "23712 333\n", - "24255 333\n", - "24257 333\n", - "24269 333\n", - "24293 333\n", - "23813 333\n", + "20968 288\n", + "20969 288\n", + "20970 288\n", + "20986 288\n", + "20988 288\n", + "20989 288\n", + "20991 288\n", + "20992 288\n", + "20993 288\n", + "20994 288\n", + "20995 288\n", + "20996 288\n", + "20997 288\n", + "20998 288\n", + "20999 288\n", + "21000 288\n", + "21001 288\n", + "21278 288\n", + "21375 288\n", + "21383 288\n", + "21495 288\n", + "22541 288\n", + "23703 288\n", + "23704 288\n", + "23711 288\n", + "23712 288\n", + "24255 288\n", + "24257 288\n", + "24269 288\n", + "24293 288\n", + "23813 288\n", "Name: count, dtype: int64" ] }, - "execution_count": 183, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -3428,16 +3408,16 @@ }, { "cell_type": "code", - "execution_count": 184, + "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(10656, 40)" + "(8928, 40)" ] }, - "execution_count": 184, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -3449,7 +3429,7 @@ }, { "cell_type": "code", - "execution_count": 185, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -3461,7 +3441,7 @@ }, { "cell_type": "code", - "execution_count": 186, + "execution_count": 55, "metadata": {}, "outputs": [ { @@ -3470,7 +3450,7 @@ "\"df_bi_preco['SKU2'] = df_bi_preco['SKU2'].astype(str).str.replace('.0','',regex=False) \\n\\ndf_final = pd.merge(left=df_final,right=df_bi_preco[['SKU2', 'UF','Tipo Preço', 'PC', 'PV']],right_on=['UF','SKU2'],left_on=['UF','SKU_FINAL'],how='left')\\ndf_final.shape \"" ] }, - "execution_count": 186, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -3485,49 +3465,48 @@ }, { "cell_type": "code", - "execution_count": 187, + "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pdv\n", - "20968 333\n", - "20969 333\n", - "20970 333\n", - "20986 333\n", - "20988 333\n", - "20989 333\n", - "20991 333\n", - "20992 333\n", - "20993 333\n", - "20994 333\n", - "20995 333\n", - "20996 333\n", - "20997 333\n", - "20998 333\n", - "20999 333\n", - "21000 333\n", - "21001 333\n", - "21278 333\n", - "21375 333\n", - "21383 333\n", - "21495 333\n", - "22448 333\n", - "22541 333\n", - "23703 333\n", - "23704 333\n", - "23711 333\n", - "23712 333\n", - "24255 333\n", - "24257 333\n", - "24269 333\n", - "24293 333\n", - "23813 333\n", + "20968 288\n", + "20969 288\n", + "20970 288\n", + "20986 288\n", + "20988 288\n", + "20989 288\n", + "20991 288\n", + "20992 288\n", + "20993 288\n", + "20994 288\n", + "20995 288\n", + "20996 288\n", + "20997 288\n", + "20998 288\n", + "20999 288\n", + "21000 288\n", + "21001 288\n", + "21278 288\n", + "21375 288\n", + "21383 288\n", + "21495 288\n", + "22541 288\n", + "23703 288\n", + "23704 288\n", + "23711 288\n", + "23712 288\n", + "24255 288\n", + "24257 288\n", + "24269 288\n", + "24293 288\n", + "23813 288\n", "Name: count, dtype: int64" ] }, - "execution_count": 187, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -3538,7 +3517,7 @@ }, { "cell_type": "code", - "execution_count": 188, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -3550,7 +3529,7 @@ }, { "cell_type": "code", - "execution_count": 189, + "execution_count": 58, "metadata": {}, "outputs": [], "source": [ @@ -3559,7 +3538,7 @@ }, { "cell_type": "code", - "execution_count": 190, + "execution_count": 59, "metadata": {}, "outputs": [], "source": [ @@ -3571,7 +3550,7 @@ }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 60, "metadata": {}, "outputs": [], "source": [ @@ -3581,7 +3560,7 @@ }, { "cell_type": "code", - "execution_count": 192, + "execution_count": 61, "metadata": {}, "outputs": [ { @@ -3600,7 +3579,7 @@ " dtype='object')" ] }, - "execution_count": 192, + "execution_count": 61, "metadata": {}, "output_type": "execute_result" } @@ -3611,7 +3590,7 @@ }, { "cell_type": "code", - "execution_count": 193, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ @@ -3620,16 +3599,16 @@ }, { "cell_type": "code", - "execution_count": 194, + "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(10656, 42)" + "(8928, 42)" ] }, - "execution_count": 194, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } @@ -3643,27 +3622,27 @@ }, { "cell_type": "code", - "execution_count": 195, + "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0 20968\n", - "1 20969\n", - "2 20970\n", - "3 20986\n", - "4 20988\n", - " ... \n", - "10651 24255\n", - "10652 24257\n", - "10653 24269\n", - "10654 24293\n", - "10655 23813\n", - "Name: PDV, Length: 10656, dtype: object" + "0 20968\n", + "1 20969\n", + "2 20970\n", + "3 20986\n", + "4 20988\n", + " ... \n", + "8923 24255\n", + "8924 24257\n", + "8925 24269\n", + "8926 24293\n", + "8927 23813\n", + "Name: PDV, Length: 8928, dtype: object" ] }, - "execution_count": 195, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } @@ -3674,28 +3653,63 @@ }, { "cell_type": "code", - "execution_count": 196, + "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "secondtonextcycleprojection\n", - "0.0 1603\n", - "1.0 1102\n", - "2.0 738\n", - "4.0 566\n", - "3.0 478\n", - " ... \n", - "368.0 1\n", - "141.0 1\n", - "105.0 1\n", - "310.0 1\n", - "231.0 1\n", - "Name: count, Length: 145, dtype: int64" + "0.0 4389\n", + "1.0 38\n", + "3.0 30\n", + "2.0 29\n", + "4.0 21\n", + "6.0 20\n", + "5.0 18\n", + "19.0 13\n", + "10.0 12\n", + "49.0 8\n", + "27.0 8\n", + "9.0 8\n", + "18.0 7\n", + "34.0 7\n", + "32.0 5\n", + "37.0 5\n", + "8.0 5\n", + "30.0 5\n", + "7.0 5\n", + "17.0 5\n", + "94.0 4\n", + "69.0 4\n", + "11.0 4\n", + "52.0 4\n", + "53.0 4\n", + "98.0 4\n", + "14.0 3\n", + "56.0 2\n", + "15.0 2\n", + "13.0 2\n", + "20.0 2\n", + "44.0 1\n", + "24.0 1\n", + "67.0 1\n", + "23.0 1\n", + "51.0 1\n", + "28.0 1\n", + "41.0 1\n", + "54.0 1\n", + "29.0 1\n", + "16.0 1\n", + "36.0 1\n", + "31.0 1\n", + "12.0 1\n", + "33.0 1\n", + "55.0 1\n", + "Name: count, dtype: int64" ] }, - "execution_count": 196, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } @@ -3708,7 +3722,7 @@ }, { "cell_type": "code", - "execution_count": 197, + "execution_count": 66, "metadata": {}, "outputs": [], "source": [ @@ -3717,7 +3731,7 @@ }, { "cell_type": "code", - "execution_count": 198, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -3726,7 +3740,7 @@ }, { "cell_type": "code", - "execution_count": 199, + "execution_count": 68, "metadata": {}, "outputs": [], "source": [ @@ -3735,7 +3749,7 @@ }, { "cell_type": "code", - "execution_count": 200, + "execution_count": 69, "metadata": {}, "outputs": [], "source": [ @@ -3744,7 +3758,7 @@ }, { "cell_type": "code", - "execution_count": 201, + "execution_count": 70, "metadata": {}, "outputs": [], "source": [ @@ -3754,16 +3768,16 @@ }, { "cell_type": "code", - "execution_count": 202, + "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(10656, 42)" + "(8928, 42)" ] }, - "execution_count": 202, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -3775,7 +3789,7 @@ }, { "cell_type": "code", - "execution_count": 203, + "execution_count": 72, "metadata": {}, "outputs": [ { @@ -3795,7 +3809,7 @@ " dtype='object')" ] }, - "execution_count": 203, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } @@ -3806,7 +3820,7 @@ }, { "cell_type": "code", - "execution_count": 204, + "execution_count": 73, "metadata": {}, "outputs": [ { @@ -3815,11 +3829,11 @@ "Index(['PDV', 'SKU', 'DESCRICAO', 'C202411', 'C202412', 'C202413', 'C202414',\n", " 'C202415', 'C202416', 'C202417', 'C202501', 'C202502', 'C202503',\n", " 'C202504', 'C202505', 'C202506', 'C202507', 'C202508', 'C202509',\n", - " 'C202510', 'C202511', 'C202512'],\n", + " 'C202510', 'C202511', 'C202512', 'C202513'],\n", " dtype='object')" ] }, - "execution_count": 204, + "execution_count": 73, "metadata": {}, "output_type": "execute_result" } @@ -3833,16 +3847,16 @@ }, { "cell_type": "code", - "execution_count": 205, + "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(10656, 42)" + "(8928, 42)" ] }, - "execution_count": 205, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" } @@ -3853,7 +3867,7 @@ }, { "cell_type": "code", - "execution_count": 206, + "execution_count": 75, "metadata": {}, "outputs": [ { @@ -3888,7 +3902,6 @@ " C202416\n", " C202417\n", " ...\n", - " C202503\n", " C202504\n", " C202505\n", " C202506\n", @@ -3898,6 +3911,7 @@ " C202510\n", " C202511\n", " C202512\n", + " C202513\n", " \n", " \n", " \n", @@ -4023,7 +4037,7 @@ " \n", " \n", "\n", - "

5 rows × 22 columns

\n", + "

5 rows × 23 columns

\n", "" ], "text/plain": [ @@ -4034,24 +4048,24 @@ "3 11201 1296 PMPCK THE BLEND DES ANTIT AER 2x75g 0.0 0.0 \n", "4 11201 1302 PMPCK LILY DES ANTIT AER 2x75g 0.0 0.0 \n", "\n", - " C202413 C202414 C202415 C202416 C202417 ... C202503 C202504 \\\n", + " C202413 C202414 C202415 C202416 C202417 ... C202504 C202505 \\\n", "0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "1 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "2 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "3 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "4 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 \n", "\n", - " C202505 C202506 C202507 C202508 C202509 C202510 C202511 C202512 \n", + " C202506 C202507 C202508 C202509 C202510 C202511 C202512 C202513 \n", "0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", - "[5 rows x 22 columns]" + "[5 rows x 23 columns]" ] }, - "execution_count": 206, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } @@ -4062,7 +4076,7 @@ }, { "cell_type": "code", - "execution_count": 207, + "execution_count": 76, "metadata": {}, "outputs": [], "source": [ @@ -4071,7 +4085,7 @@ }, { "cell_type": "code", - "execution_count": 208, + "execution_count": 77, "metadata": {}, "outputs": [ { @@ -4090,11 +4104,11 @@ " 'UFPRODUTO', 'DESCRICAO', 'C202411', 'C202412', 'C202413', 'C202414',\n", " 'C202415', 'C202416', 'C202417', 'C202501', 'C202502', 'C202503',\n", " 'C202504', 'C202505', 'C202506', 'C202507', 'C202508', 'C202509',\n", - " 'C202510', 'C202511', 'C202512'],\n", + " 'C202510', 'C202511', 'C202512', 'C202513'],\n", " dtype='object')" ] }, - "execution_count": 208, + "execution_count": 77, "metadata": {}, "output_type": "execute_result" } @@ -4105,7 +4119,7 @@ }, { "cell_type": "code", - "execution_count": 209, + "execution_count": 78, "metadata": {}, "outputs": [], "source": [ @@ -4114,7 +4128,7 @@ }, { "cell_type": "code", - "execution_count": 210, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ @@ -4127,7 +4141,7 @@ }, { "cell_type": "code", - "execution_count": 211, + "execution_count": 80, "metadata": {}, "outputs": [ { @@ -4162,7 +4176,6 @@ " DiasSemVenda\n", " nextcycleprojection\n", " ...\n", - " C202504\n", " C202505\n", " C202506\n", " C202507\n", @@ -4171,6 +4184,7 @@ " C202510\n", " C202511\n", " C202512\n", + " C202513\n", " PICO DE VENDAS 17CICLOS\n", " \n", " \n", @@ -4178,62 +4192,62 @@ " \n", " 0\n", " 20968\n", - " 56572\n", - " 56572\n", - " 35\n", + " 94060\n", + " 94060\n", + " 5\n", " 0\n", - " None\n", - " B\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 12.0\n", " 0.0\n", " ...\n", - " 0.0\n", - " 9.0\n", - " 4.0\n", - " 14.0\n", + " 8.0\n", " 0.0\n", " 0.0\n", - " 1.0\n", " 0.0\n", " 0.0\n", - " 38.0\n", + " 0.0\n", + " 8.0\n", + " 2.0\n", + " 0.0\n", + " 11.0\n", " \n", " \n", " 1\n", " 20969\n", - " 56572\n", - " 56572\n", - " 30\n", + " 94060\n", + " 94060\n", + " 1\n", " 0\n", - " None\n", - " B\n", + " 5\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 11.0\n", " 0.0\n", " ...\n", - " 2.0\n", - " 37.0\n", - " 34.0\n", - " 14.0\n", + " 5.0\n", " 3.0\n", - " 2.0\n", - " 4.0\n", - " 1.0\n", " 0.0\n", - " 37.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 1.0\n", + " 3.0\n", + " 0.0\n", + " 43.0\n", " \n", " \n", " 2\n", " 20970\n", - " 56572\n", - " 56572\n", - " 81\n", + " 94060\n", + " 94060\n", + " 10\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", - " 0.0\n", + " 3.0\n", " 0.0\n", " ...\n", " 0.0\n", @@ -4243,19 +4257,19 @@ " 0.0\n", " 0.0\n", " 0.0\n", + " 2.0\n", " 0.0\n", - " NaN\n", - " 0.0\n", + " 2.0\n", " \n", " \n", " 3\n", " 20986\n", - " 56572\n", - " 56572\n", - " 71\n", + " 94060\n", + " 94060\n", + " 11\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", @@ -4274,12 +4288,12 @@ " \n", " 4\n", " 20988\n", - " 56572\n", - " 56572\n", - " 51\n", + " 94060\n", + " 94060\n", + " 9\n", " 0\n", - " None\n", - " E\n", + " 0\n", + " C\n", " PERFUMARIA\n", " 0.0\n", " 0.0\n", @@ -4297,42 +4311,42 @@ " \n", " \n", "\n", - "

5 rows × 63 columns

\n", + "

5 rows × 64 columns

\n", "" ], "text/plain": [ " pdv SKU SKU_FINAL ESTOQUE ATUAL ESTOQUE EM TRANSITO PEDIDO PENDENTE \\\n", - "0 20968 56572 56572 35 0 None \n", - "1 20969 56572 56572 30 0 None \n", - "2 20970 56572 56572 81 0 None \n", - "3 20986 56572 56572 71 0 None \n", - "4 20988 56572 56572 51 0 None \n", + "0 20968 94060 94060 5 0 0 \n", + "1 20969 94060 94060 1 0 5 \n", + "2 20970 94060 94060 10 0 0 \n", + "3 20986 94060 94060 11 0 0 \n", + "4 20988 94060 94060 9 0 0 \n", "\n", - " Curva CATEGORIA DiasSemVenda nextcycleprojection ... C202504 C202505 \\\n", - "0 B PERFUMARIA 0.0 0.0 ... 0.0 9.0 \n", - "1 B PERFUMARIA 0.0 0.0 ... 2.0 37.0 \n", - "2 E PERFUMARIA 0.0 0.0 ... 0.0 0.0 \n", - "3 E PERFUMARIA 0.0 0.0 ... 0.0 0.0 \n", - "4 E PERFUMARIA 0.0 0.0 ... 0.0 0.0 \n", + " Curva CATEGORIA DiasSemVenda nextcycleprojection ... C202505 C202506 \\\n", + "0 C PERFUMARIA 12.0 0.0 ... 8.0 0.0 \n", + "1 C PERFUMARIA 11.0 0.0 ... 5.0 3.0 \n", + "2 C PERFUMARIA 3.0 0.0 ... 0.0 0.0 \n", + "3 C PERFUMARIA 0.0 0.0 ... 0.0 0.0 \n", + "4 C PERFUMARIA 0.0 0.0 ... 0.0 0.0 \n", "\n", - " C202506 C202507 C202508 C202509 C202510 C202511 C202512 \\\n", - "0 4.0 14.0 0.0 0.0 1.0 0.0 0.0 \n", - "1 34.0 14.0 3.0 2.0 4.0 1.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 0.0 0.0 NaN \n", + " C202507 C202508 C202509 C202510 C202511 C202512 C202513 \\\n", + "0 0.0 0.0 0.0 0.0 8.0 2.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 1.0 3.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 0.0 2.0 0.0 \n", "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", " PICO DE VENDAS 17CICLOS \n", - "0 38.0 \n", - "1 37.0 \n", - "2 0.0 \n", + "0 11.0 \n", + "1 43.0 \n", + "2 2.0 \n", "3 0.0 \n", "4 0.0 \n", "\n", - "[5 rows x 63 columns]" + "[5 rows x 64 columns]" ] }, - "execution_count": 211, + "execution_count": 80, "metadata": {}, "output_type": "execute_result" } @@ -4343,49 +4357,48 @@ }, { "cell_type": "code", - "execution_count": 212, + "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PDV\n", - "20968 348\n", - "20991 348\n", - "20995 348\n", - "20996 348\n", - "20997 348\n", - "20998 348\n", - "21278 348\n", - "20969 347\n", - "22541 347\n", - "21495 346\n", - "20992 333\n", - "20986 333\n", - "20993 333\n", - "20989 333\n", - "20988 333\n", - "20970 333\n", - "21000 333\n", - "20999 333\n", - "20994 333\n", - "21001 333\n", - "21383 333\n", - "21375 333\n", - "22448 333\n", - "23703 333\n", - "23704 333\n", - "23711 333\n", - "23712 333\n", - "24255 333\n", - "24257 333\n", - "24269 333\n", - "24293 333\n", - "23813 333\n", + "20968 292\n", + "20969 292\n", + "20995 292\n", + "20996 292\n", + "20997 292\n", + "20998 292\n", + "21278 292\n", + "22541 292\n", + "21495 291\n", + "20991 291\n", + "20989 288\n", + "20994 288\n", + "20988 288\n", + "20986 288\n", + "20970 288\n", + "20999 288\n", + "20992 288\n", + "20993 288\n", + "21000 288\n", + "21375 288\n", + "21001 288\n", + "21383 288\n", + "23703 288\n", + "23704 288\n", + "23711 288\n", + "23712 288\n", + "24255 288\n", + "24257 288\n", + "24269 288\n", + "24293 288\n", + "23813 288\n", "Name: count, dtype: int64" ] }, - "execution_count": 212, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } @@ -4396,19 +4409,19 @@ }, { "cell_type": "code", - "execution_count": 213, + "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['C202412', 'C202413', 'C202414', 'C202415', 'C202416', 'C202417',\n", - " 'C202501', 'C202502', 'C202503', 'C202504', 'C202505', 'C202506',\n", - " 'C202507', 'C202508', 'C202509', 'C202510', 'C202511'],\n", + "Index(['C202413', 'C202414', 'C202415', 'C202416', 'C202417', 'C202501',\n", + " 'C202502', 'C202503', 'C202504', 'C202505', 'C202506', 'C202507',\n", + " 'C202508', 'C202509', 'C202510', 'C202511', 'C202512'],\n", " dtype='object')" ] }, - "execution_count": 213, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } @@ -4419,7 +4432,7 @@ }, { "cell_type": "code", - "execution_count": 214, + "execution_count": 83, "metadata": {}, "outputs": [], "source": [ @@ -4430,16 +4443,16 @@ }, { "cell_type": "code", - "execution_count": 215, + "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'C202413'" + "'C202414'" ] }, - "execution_count": 215, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" } @@ -4450,14 +4463,14 @@ }, { "cell_type": "code", - "execution_count": 216, + "execution_count": 85, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "0.22600883356755672\n" + "0.7716087836785548\n" ] } ], @@ -4470,7 +4483,7 @@ }, { "cell_type": "code", - "execution_count": 217, + "execution_count": 86, "metadata": {}, "outputs": [], "source": [ @@ -4481,16 +4494,16 @@ }, { "cell_type": "code", - "execution_count": 218, + "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'C202414'" + "'C202415'" ] }, - "execution_count": 218, + "execution_count": 87, "metadata": {}, "output_type": "execute_result" } @@ -4501,19 +4514,19 @@ }, { "cell_type": "code", - "execution_count": 219, + "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['C202412', 'C202413', 'C202414', 'C202415', 'C202416', 'C202417',\n", - " 'C202501', 'C202502', 'C202503', 'C202504', 'C202505', 'C202506',\n", - " 'C202507', 'C202508', 'C202509', 'C202510', 'C202511', 'C202512'],\n", + "Index(['C202413', 'C202414', 'C202415', 'C202416', 'C202417', 'C202501',\n", + " 'C202502', 'C202503', 'C202504', 'C202505', 'C202506', 'C202507',\n", + " 'C202508', 'C202509', 'C202510', 'C202511', 'C202512', 'C202513'],\n", " dtype='object')" ] }, - "execution_count": 219, + "execution_count": 88, "metadata": {}, "output_type": "execute_result" } @@ -4524,7 +4537,7 @@ }, { "cell_type": "code", - "execution_count": 220, + "execution_count": 89, "metadata": {}, "outputs": [], "source": [ @@ -4539,16 +4552,16 @@ }, { "cell_type": "code", - "execution_count": 221, + "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "np.float64(0.22600883356755672)" + "np.float64(0.7716087836785548)" ] }, - "execution_count": 221, + "execution_count": 90, "metadata": {}, "output_type": "execute_result" } @@ -4559,7 +4572,7 @@ }, { "cell_type": "code", - "execution_count": 222, + "execution_count": 91, "metadata": {}, "outputs": [], "source": [ @@ -4570,7 +4583,7 @@ }, { "cell_type": "code", - "execution_count": 223, + "execution_count": 92, "metadata": {}, "outputs": [], "source": [ @@ -4579,7 +4592,7 @@ }, { "cell_type": "code", - "execution_count": 224, + "execution_count": 93, "metadata": {}, "outputs": [], "source": [ @@ -4588,7 +4601,7 @@ }, { "cell_type": "code", - "execution_count": 225, + "execution_count": 94, "metadata": {}, "outputs": [ { @@ -4607,13 +4620,13 @@ " 'UFPRODUTO', 'DESCRICAO', 'C202411', 'C202412', 'C202413', 'C202414',\n", " 'C202415', 'C202416', 'C202417', 'C202501', 'C202502', 'C202503',\n", " 'C202504', 'C202505', 'C202506', 'C202507', 'C202508', 'C202509',\n", - " 'C202510', 'C202511', 'C202512', 'PICO DE VENDAS 17CICLOS',\n", + " 'C202510', 'C202511', 'C202512', 'C202513', 'PICO DE VENDAS 17CICLOS',\n", " 'Pico Vendas Ultimos 6 ciclos', 'CRESCIMENTO', 'MEDIANA DO HISTÓRICO',\n", " 'MEDIA DO HISTÓRICO', 'PV GINSENG'],\n", " dtype='object')" ] }, - "execution_count": 225, + "execution_count": 94, "metadata": {}, "output_type": "execute_result" } @@ -4624,7 +4637,7 @@ }, { "cell_type": "code", - "execution_count": 226, + "execution_count": 95, "metadata": {}, "outputs": [], "source": [ @@ -4635,7 +4648,7 @@ }, { "cell_type": "code", - "execution_count": 227, + "execution_count": 96, "metadata": {}, "outputs": [], "source": [ @@ -4649,7 +4662,7 @@ }, { "cell_type": "code", - "execution_count": 228, + "execution_count": 97, "metadata": {}, "outputs": [], "source": [ @@ -4658,7 +4671,7 @@ }, { "cell_type": "code", - "execution_count": 229, + "execution_count": 98, "metadata": {}, "outputs": [], "source": [ @@ -4667,7 +4680,7 @@ }, { "cell_type": "code", - "execution_count": 230, + "execution_count": 99, "metadata": {}, "outputs": [], "source": [ @@ -4680,7 +4693,7 @@ }, { "cell_type": "code", - "execution_count": 231, + "execution_count": 100, "metadata": {}, "outputs": [], "source": [ @@ -4689,7 +4702,7 @@ }, { "cell_type": "code", - "execution_count": 232, + "execution_count": 101, "metadata": {}, "outputs": [], "source": [ @@ -4698,7 +4711,7 @@ }, { "cell_type": "code", - "execution_count": 233, + "execution_count": 102, "metadata": {}, "outputs": [], "source": [ @@ -4707,7 +4720,7 @@ }, { "cell_type": "code", - "execution_count": 234, + "execution_count": 103, "metadata": {}, "outputs": [], "source": [ @@ -4716,7 +4729,7 @@ }, { "cell_type": "code", - "execution_count": 235, + "execution_count": 104, "metadata": {}, "outputs": [], "source": [ @@ -4725,7 +4738,7 @@ }, { "cell_type": "code", - "execution_count": 236, + "execution_count": 105, "metadata": {}, "outputs": [], "source": [ @@ -4734,7 +4747,7 @@ }, { "cell_type": "code", - "execution_count": 237, + "execution_count": 106, "metadata": {}, "outputs": [], "source": [ @@ -4744,7 +4757,7 @@ }, { "cell_type": "code", - "execution_count": 238, + "execution_count": 107, "metadata": {}, "outputs": [], "source": [ @@ -4753,7 +4766,7 @@ }, { "cell_type": "code", - "execution_count": 239, + "execution_count": 108, "metadata": {}, "outputs": [], "source": [ @@ -4765,7 +4778,7 @@ }, { "cell_type": "code", - "execution_count": 240, + "execution_count": 109, "metadata": {}, "outputs": [], "source": [ @@ -4775,7 +4788,7 @@ }, { "cell_type": "code", - "execution_count": 241, + "execution_count": 110, "metadata": {}, "outputs": [], "source": [ @@ -4784,7 +4797,7 @@ }, { "cell_type": "code", - "execution_count": 242, + "execution_count": 111, "metadata": {}, "outputs": [], "source": [ @@ -4793,7 +4806,7 @@ }, { "cell_type": "code", - "execution_count": 243, + "execution_count": 112, "metadata": {}, "outputs": [], "source": [ @@ -4802,7 +4815,7 @@ }, { "cell_type": "code", - "execution_count": 244, + "execution_count": 113, "metadata": {}, "outputs": [], "source": [ @@ -4812,7 +4825,7 @@ }, { "cell_type": "code", - "execution_count": 245, + "execution_count": 114, "metadata": {}, "outputs": [ { @@ -4828,15 +4841,15 @@ " '% de Desconto', 'RE compra por', 'RE Vende por', 'RE lucra (R$)',\n", " 'MATCH', 'PDV', 'UF', 'DESCRIÇÃO PDV', 'ANALISTA', 'match', 'Ciclo_y',\n", " 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'PDV_SKU',\n", - " 'UFPRODUTO', 'DESCRICAO', 'C202411', 'C202414', 'C202509', 'C202510',\n", - " 'C202511', 'C202512', 'PICO DE VENDAS 17CICLOS',\n", + " 'UFPRODUTO', 'DESCRICAO', 'C202411', 'C202412', 'C202415', 'C202510',\n", + " 'C202511', 'C202512', 'C202513', 'PICO DE VENDAS 17CICLOS',\n", " 'Pico Vendas Ultimos 6 ciclos', 'CRESCIMENTO', 'MEDIANA DO HISTÓRICO',\n", " 'MEDIA DO HISTÓRICO', 'PV GINSENG', 'SUGESTÃO ABTASTECIMENTO\\t',\n", " 'VENDAS R$ ABASTECIMENTO'],\n", " dtype='object')" ] }, - "execution_count": 245, + "execution_count": 114, "metadata": {}, "output_type": "execute_result" } @@ -4847,7 +4860,7 @@ }, { "cell_type": "code", - "execution_count": 246, + "execution_count": 115, "metadata": {}, "outputs": [], "source": [ @@ -4889,49 +4902,48 @@ }, { "cell_type": "code", - "execution_count": 247, + "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PDV\n", - "21375 270\n", - "21383 270\n", - "21495 270\n", - "22448 270\n", - "22541 270\n", - "23703 270\n", - "20969 270\n", - "20968 270\n", - "23704 270\n", - "23711 270\n", - "20999 270\n", - "21000 270\n", - "20994 270\n", - "20993 270\n", - "20995 270\n", - "20996 270\n", - "20997 270\n", - "20998 270\n", - "20986 270\n", - "20970 270\n", - "20991 270\n", - "20992 270\n", - "20989 270\n", - "20988 270\n", - "21001 270\n", - "21278 270\n", - "23813 270\n", - "24293 270\n", - "24269 270\n", - "24257 270\n", - "24255 270\n", - "23712 270\n", + "20986 196\n", + "20991 196\n", + "23712 196\n", + "23711 196\n", + "23704 196\n", + "23703 196\n", + "22541 196\n", + "21495 196\n", + "21383 196\n", + "21375 196\n", + "21278 196\n", + "21001 196\n", + "24269 196\n", + "23813 196\n", + "24255 196\n", + "24257 196\n", + "24293 196\n", + "20970 196\n", + "20969 196\n", + "20968 196\n", + "20999 196\n", + "21000 196\n", + "20996 196\n", + "20995 196\n", + "20997 196\n", + "20998 196\n", + "20989 196\n", + "20994 196\n", + "20992 196\n", + "20993 196\n", + "20988 196\n", "Name: count, dtype: int64" ] }, - "execution_count": 247, + "execution_count": 116, "metadata": {}, "output_type": "execute_result" } @@ -4966,7 +4978,7 @@ }, { "cell_type": "code", - "execution_count": 248, + "execution_count": 117, "metadata": {}, "outputs": [], "source": [ @@ -4977,7 +4989,7 @@ }, { "cell_type": "code", - "execution_count": 249, + "execution_count": 118, "metadata": {}, "outputs": [ { @@ -4993,15 +5005,15 @@ " '% de Desconto', 'RE compra por', 'RE Vende por', 'RE lucra (R$)',\n", " 'MATCH', 'PDV', 'UF', 'DESCRIÇÃO PDV', 'ANALISTA', 'match', 'Ciclo_y',\n", " 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'PDV_SKU',\n", - " 'UFPRODUTO', 'DESCRICAO', 'C202411', 'C202414', 'C202509', 'C202510',\n", - " 'C202511', 'C202512', 'PICO DE VENDAS 17CICLOS',\n", + " 'UFPRODUTO', 'DESCRICAO', 'C202411', 'C202412', 'C202415', 'C202510',\n", + " 'C202511', 'C202512', 'C202513', 'PICO DE VENDAS 17CICLOS',\n", " 'Pico Vendas Ultimos 6 ciclos', 'CRESCIMENTO', 'MEDIANA DO HISTÓRICO',\n", " 'MEDIA DO HISTÓRICO', 'PV GINSENG', 'SUGESTÃO ABTASTECIMENTO\\t',\n", " 'VENDAS R$ ABASTECIMENTO', 'MECÂNICA 1', 'MECÂNICA 2', 'MECÂNICA 3'],\n", " dtype='object')" ] }, - "execution_count": 249, + "execution_count": 118, "metadata": {}, "output_type": "execute_result" } @@ -5012,7 +5024,7 @@ }, { "cell_type": "code", - "execution_count": 250, + "execution_count": 119, "metadata": {}, "outputs": [], "source": [ @@ -5021,7 +5033,7 @@ }, { "cell_type": "code", - "execution_count": 251, + "execution_count": 120, "metadata": {}, "outputs": [], "source": [ @@ -5030,7 +5042,7 @@ }, { "cell_type": "code", - "execution_count": 252, + "execution_count": 121, "metadata": {}, "outputs": [], "source": [ @@ -5039,7 +5051,7 @@ }, { "cell_type": "code", - "execution_count": 253, + "execution_count": 122, "metadata": {}, "outputs": [], "source": [ @@ -5048,7 +5060,7 @@ }, { "cell_type": "code", - "execution_count": 254, + "execution_count": 123, "metadata": {}, "outputs": [], "source": [ @@ -5059,7 +5071,7 @@ }, { "cell_type": "code", - "execution_count": 255, + "execution_count": 124, "metadata": {}, "outputs": [], "source": [ @@ -5070,7 +5082,7 @@ }, { "cell_type": "code", - "execution_count": 256, + "execution_count": 125, "metadata": {}, "outputs": [], "source": [ @@ -5079,7 +5091,7 @@ }, { "cell_type": "code", - "execution_count": 257, + "execution_count": 126, "metadata": {}, "outputs": [], "source": [ @@ -5088,7 +5100,7 @@ }, { "cell_type": "code", - "execution_count": 258, + "execution_count": 127, "metadata": {}, "outputs": [], "source": [ @@ -5097,7 +5109,7 @@ }, { "cell_type": "code", - "execution_count": 259, + "execution_count": 128, "metadata": {}, "outputs": [], "source": [ @@ -5106,44 +5118,16 @@ }, { "cell_type": "code", - "execution_count": 260, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['PDV', 'SKU', 'SKU_FINAL', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'CURVA', 'DIASSEMVENDA', 'PROJEÇÃO PROX CICLO',\n", - " 'PROJEÇÃO PROX CICLO +1', 'PROMO PERÍODO LIMITADO?', 'EAM', 'CATEGORIA',\n", - " 'VALOR DO GUIA', 'PREÇO PROMOCIONADO', '% DE DESCONTO', 'UF',\n", - " 'DESCRIÇÃO PDV', 'DESCRICAO', 'C202411', 'C202414', 'C202509',\n", - " 'C202510', 'C202511', 'C202512', 'PICO DE VENDAS 17CICLOS',\n", - " 'PICO VENDAS ULTIMOS 6 CICLOS', 'MEDIA DO HISTÓRICO', 'PV GINSENG',\n", - " 'SUGESTÃO ABTASTECIMENTO\\t', 'MECÂNICA 1', 'MECÂNICA 2', 'MECÂNICA 3'],\n", - " dtype='object')" - ] - }, - "execution_count": 260, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_merged.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 261, + "execution_count": 129, "metadata": {}, "outputs": [], "source": [ - "df_merged['SUGESTÃO COMERCIAL'] =\"\"" + "df_merged[df_merged.columns[19:26]] = df_merged[df_merged.columns[19:26]].fillna(0)" ] }, { "cell_type": "code", - "execution_count": 262, + "execution_count": 130, "metadata": {}, "outputs": [], "source": [ @@ -5158,7 +5142,7 @@ "\n", "# Colunas que devem estar no fim\n", "colunas_fim = [\n", - " 'PV GINSENG', 'SUGESTÃO ABTASTECIMENTO\\t', 'SUGESTÃO COMERCIAL'\n", + " 'PV GINSENG', 'SUGESTÃO ABTASTECIMENTO\\t'\n", "]\n", "\n", "# Todas as outras colunas (não estão nem no início nem no fim)\n", @@ -5170,7 +5154,7 @@ }, { "cell_type": "code", - "execution_count": 263, + "execution_count": 131, "metadata": {}, "outputs": [], "source": [ @@ -5179,7 +5163,28 @@ }, { "cell_type": "code", - "execution_count": 264, + "execution_count": 132, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'2025-09-03'" + ] + }, + "execution_count": 132, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hoje=datetime.today().strftime('%Y-%m-%d')\n", + "hoje" + ] + }, + { + "cell_type": "code", + "execution_count": 134, "metadata": {}, "outputs": [], "source": [ @@ -5189,7 +5194,7 @@ "\n", "\n", "# Export to Excel\n", - "output_file = f'C:\\\\Users\\\\joao.herculano\\\\Documents\\\\EUD_promoção_{ciclo_mais2}_25.08.xlsx'\n", + "output_file = f'C:\\\\Users\\\\joao.herculano\\\\Documents\\\\EUD_promoção_{ciclo_mais2}_{hoje}.xlsx'\n", "with pd.ExcelWriter(output_file, engine='openpyxl') as writer:\n", " df_merged.to_excel(writer, index=False, sheet_name='Sheet1')\n", "\n", diff --git a/promoção/promoção_boti_ciclo07.ipynb b/promoção/promoção_boti_ciclo07.ipynb index 138d865..7c46b22 100644 --- a/promoção/promoção_boti_ciclo07.ipynb +++ b/promoção/promoção_boti_ciclo07.ipynb @@ -35,11 +35,11 @@ }, { "cell_type": "code", - "execution_count": 203, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ - "df_tabela = pd.read_excel(r\"C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistência Suprimentos - 2025\\SUPRIMENTOS\\DB_PROMOÇÕES\\BOTICARIO\\C14\\TABELA DE PEDIDOS\\Pedidos Semanais Especiais - BOT - 202514 (3).xlsx\")\n", + "df_tabela = pd.read_excel(r\"C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistência Suprimentos - 2025\\SUPRIMENTOS\\DB_PROMOÇÕES\\BOTICARIO\\C15\\TABELA DE PEDIDOS\\Pedidos Semanais Especiais - BOT - 202515 (1).xlsx\")\n", "\n", "df_tabela = df_tabela[df_tabela['Ação revendedor'].notna() | df_tabela['Ação consumidor'].notna()]\n", "\n", @@ -67,14 +67,14 @@ }, { "cell_type": "code", - "execution_count": 205, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\2225685327.py:39: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\2225685327.py:39: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", " dfi = pd.read_sql(query, conn)\n" ] } @@ -124,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 206, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -133,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": 207, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -169,75 +169,75 @@ " \n", " \n", " 0\n", - " 20992\n", - " 51021\n", + " 20998\n", + " 79437\n", " -\n", - " 51021\n", - " \"QDB BLUSH LIQ GUARANA 6\n", - " 8.0\n", - " C202416\n", + " 79437\n", + " QDB GLIT SLT P/OLHO ROSELITTER 1g RPCK\n", + " 1.0\n", + " C202413\n", " \n", " \n", " 1\n", - " 20057\n", - " 4510\n", + " 4560\n", + " 51226\n", " -\n", - " 4510\n", - " REF BOTIK CR FAC FIRM AC/HIALUR 40g\n", - " 2.0\n", - " C202417\n", + " 51226\n", + " CBEM SAB BARRA NUVEM V5 2x80g\n", + " 30.0\n", + " C202413\n", " \n", " \n", " 2\n", - " 20997\n", - " 1808\n", + " 21277\n", + " 48290\n", " -\n", - " 1808\n", - " MAKE B BAS LIQ MATE SALICYLIC 200 30g\n", - " 1.0\n", - " C202504\n", + " 48290\n", + " NSPA DES COL BDY SPLSH AMEI 200ml V2\n", + " 3.0\n", + " C202414\n", " \n", " \n", " 3\n", - " 12823\n", - " 56804\n", + " 23701\n", + " 56810\n", " -\n", - " 56804\n", - " MATCH MASC CAP SCIENCE RECONS V2 250g\n", + " 56810\n", + " MATCH COND SCIENCE CRESCIMENTO V2 280ml\n", " 2.0\n", - " C202511\n", + " C202505\n", " \n", " \n", " 4\n", - " 20998\n", - " 83836\n", + " 5699\n", + " 56027\n", " -\n", - " 83836\n", - " OUI CREM DES HID CPO MADELEINE 200g\n", - " 8.0\n", - " C202501\n", + " 56027\n", + " MEN SAB BARRA 2x90g\n", + " 37.0\n", + " C202506\n", " \n", " \n", "\n", "" ], "text/plain": [ - " PDV SKU SKU2 SKU_FINAL DESCRICAO \\\n", - "0 20992 51021 - 51021 \"QDB BLUSH LIQ GUARANA 6 \n", - "1 20057 4510 - 4510 REF BOTIK CR FAC FIRM AC/HIALUR 40g \n", - "2 20997 1808 - 1808 MAKE B BAS LIQ MATE SALICYLIC 200 30g \n", - "3 12823 56804 - 56804 MATCH MASC CAP SCIENCE RECONS V2 250g \n", - "4 20998 83836 - 83836 OUI CREM DES HID CPO MADELEINE 200g \n", + " PDV SKU SKU2 SKU_FINAL DESCRICAO \\\n", + "0 20998 79437 - 79437 QDB GLIT SLT P/OLHO ROSELITTER 1g RPCK \n", + "1 4560 51226 - 51226 CBEM SAB BARRA NUVEM V5 2x80g \n", + "2 21277 48290 - 48290 NSPA DES COL BDY SPLSH AMEI 200ml V2 \n", + "3 23701 56810 - 56810 MATCH COND SCIENCE CRESCIMENTO V2 280ml \n", + "4 5699 56027 - 56027 MEN SAB BARRA 2x90g \n", "\n", " VENDAS_CICLO Ciclo \n", - "0 8.0 C202416 \n", - "1 2.0 C202417 \n", - "2 1.0 C202504 \n", - "3 2.0 C202511 \n", - "4 8.0 C202501 " + "0 1.0 C202413 \n", + "1 30.0 C202413 \n", + "2 3.0 C202414 \n", + "3 2.0 C202505 \n", + "4 37.0 C202506 " ] }, - "execution_count": 207, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -250,7 +250,7 @@ }, { "cell_type": "code", - "execution_count": 208, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -327,7 +327,7 @@ " 12522\n", " 1080\n", " INTENSE GLOS LAB BUBBAL TUT/FRUT 5ml\n", - " 2.0\n", + " 0.0\n", " 0.0\n", " 4.0\n", " 0.0\n", @@ -416,214 +416,39 @@ " 0.0\n", " 0.0\n", " 1.0\n", - " 0.0\n", - " \n", - " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 142986\n", - " 5699\n", - " 89048\n", - " ENVELOPE M BOTI NAMORADOS/25 UNITARIO\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " ...\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 26.0\n", - " 4.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " \n", - " \n", - " 142987\n", - " 5699\n", - " 89756\n", - " CAIXA FLAG BOTI NAMORADOS 25 UNIT\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " ...\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", " 1.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " \n", - " \n", - " 142988\n", - " 5699\n", - " 89840\n", - " CAIXA LACO M BOTI PAIS/25 UNIT\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " ...\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 11.0\n", - " 1.0\n", - " \n", - " \n", - " 142989\n", - " 5699\n", - " 89843\n", - " ENVELOPE M BOTI PAIS 2025 UNIT\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " ...\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 10.0\n", - " 8.0\n", - " \n", - " \n", - " 142990\n", - " 5699\n", - " 90774\n", - " PIN MELHOR PAI O BOTICARIO PAIS/25 UNIT\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " ...\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 3.0\n", - " 0.0\n", " \n", " \n", "\n", - "

142991 rows × 21 columns

\n", + "

5 rows × 21 columns

\n", "" ], "text/plain": [ - " PDV SKU_FINAL DESCRICAO C202412 \\\n", - "0 12522 1004 FLORATTA DES COL MY BLUE 75ml 0.0 \n", - "1 12522 1080 INTENSE GLOS LAB BUBBAL TUT/FRUT 5ml 2.0 \n", - "2 12522 1296 PMPCK THE BLEND DES ANTIT AER 2x75g 0.0 \n", - "3 12522 1302 PMPCK LILY DES ANTIT AER 2x75g 1.0 \n", - "4 12522 1314 PMPCK ZAAD DES ANTIT AER 2x75g 0.0 \n", - "... ... ... ... ... \n", - "142986 5699 89048 ENVELOPE M BOTI NAMORADOS/25 UNITARIO 0.0 \n", - "142987 5699 89756 CAIXA FLAG BOTI NAMORADOS 25 UNIT 0.0 \n", - "142988 5699 89840 CAIXA LACO M BOTI PAIS/25 UNIT 0.0 \n", - "142989 5699 89843 ENVELOPE M BOTI PAIS 2025 UNIT 0.0 \n", - "142990 5699 90774 PIN MELHOR PAI O BOTICARIO PAIS/25 UNIT 0.0 \n", + " PDV SKU_FINAL DESCRICAO C202412 C202413 \\\n", + "0 12522 1004 FLORATTA DES COL MY BLUE 75ml 0.0 15.0 \n", + "1 12522 1080 INTENSE GLOS LAB BUBBAL TUT/FRUT 5ml 0.0 0.0 \n", + "2 12522 1296 PMPCK THE BLEND DES ANTIT AER 2x75g 0.0 1.0 \n", + "3 12522 1302 PMPCK LILY DES ANTIT AER 2x75g 1.0 4.0 \n", + "4 12522 1314 PMPCK ZAAD DES ANTIT AER 2x75g 0.0 2.0 \n", "\n", - " C202413 C202414 C202415 C202416 C202417 C202501 ... C202503 \\\n", - "0 15.0 2.0 3.0 56.0 6.0 1.0 ... 1.0 \n", - "1 0.0 4.0 0.0 10.0 2.0 2.0 ... 2.0 \n", - "2 1.0 3.0 3.0 2.0 0.0 0.0 ... 0.0 \n", - "3 4.0 3.0 5.0 6.0 0.0 0.0 ... 0.0 \n", - "4 2.0 3.0 1.0 1.0 0.0 0.0 ... 0.0 \n", - "... ... ... ... ... ... ... ... ... \n", - "142986 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "142987 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "142988 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "142989 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "142990 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", + " C202414 C202415 C202416 C202417 C202501 ... C202503 C202504 \\\n", + "0 2.0 3.0 56.0 6.0 1.0 ... 1.0 5.0 \n", + "1 4.0 0.0 10.0 2.0 2.0 ... 2.0 3.0 \n", + "2 3.0 3.0 2.0 0.0 0.0 ... 0.0 0.0 \n", + "3 3.0 5.0 6.0 0.0 0.0 ... 0.0 0.0 \n", + "4 3.0 1.0 1.0 0.0 0.0 ... 0.0 0.0 \n", "\n", - " C202504 C202505 C202506 C202507 C202508 C202509 C202510 \\\n", - "0 5.0 12.0 7.0 2.0 0.0 1.0 2.0 \n", - "1 3.0 1.0 7.0 17.0 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 0.0 3.0 4.0 0.0 4.0 4.0 \n", - "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "... ... ... ... ... ... ... ... \n", - "142986 0.0 0.0 0.0 0.0 26.0 4.0 0.0 \n", - "142987 0.0 0.0 0.0 0.0 1.0 0.0 0.0 \n", - "142988 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "142989 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "142990 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + " C202505 C202506 C202507 C202508 C202509 C202510 C202511 C202512 \n", + "0 12.0 7.0 2.0 0.0 1.0 2.0 5.0 2.0 \n", + "1 1.0 7.0 17.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 3.0 4.0 0.0 4.0 4.0 2.0 1.0 \n", + "4 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 \n", "\n", - " C202511 C202512 \n", - "0 5.0 2.0 \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 2.0 1.0 \n", - "4 1.0 0.0 \n", - "... ... ... \n", - "142986 0.0 0.0 \n", - "142987 0.0 0.0 \n", - "142988 11.0 1.0 \n", - "142989 10.0 8.0 \n", - "142990 3.0 0.0 \n", - "\n", - "[142991 rows x 21 columns]" + "[5 rows x 21 columns]" ] }, - "execution_count": 208, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -649,12 +474,84 @@ "df_pivotadowawa = df_pivotadowawa.rename(columns=lambda x: f'Ciclo_{x}' if isinstance(x, (int, str)) and str(x).isdigit() else x)\n", "\n", "# Resultado final\n", - "df_pivotadowawa\n" + "df_pivotadowawa.head()\n" ] }, { "cell_type": "code", - "execution_count": 209, + "execution_count": 9, + "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", + "
PDVSKU_FINALDESCRICAOC202412C202413C202414C202415C202416C202417C202501...C202503C202504C202505C202506C202507C202508C202509C202510C202511C202512
\n", + "

0 rows × 21 columns

\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [PDV, SKU_FINAL, DESCRICAO, C202412, C202413, C202414, C202415, C202416, C202417, C202501, C202502, C202503, C202504, C202505, C202506, C202507, C202508, C202509, C202510, C202511, C202512]\n", + "Index: []\n", + "\n", + "[0 rows x 21 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pivotadowawa[(df_pivotadowawa['SKU_FINAL'] == '1634') & (df_pivotadowawa['PDV'] == '20998')]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -682,7 +579,78 @@ }, { "cell_type": "code", - "execution_count": 210, + "execution_count": 11, + "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", + "
PDVCANALDESCRIÇÃO PDVPDV DESCUFMARCAANALISTASUPERVISORMATCH
4321007LJMOREIRA 221007-MOREIRA 2ALO BOTICARIOLUANMaxwell Vieira1
\n", + "
" + ], + "text/plain": [ + " PDV CANAL DESCRIÇÃO PDV PDV DESC UF MARCA ANALISTA \\\n", + "43 21007 LJ MOREIRA 2 21007-MOREIRA 2 AL O BOTICARIO LUAN \n", + "\n", + " SUPERVISOR MATCH \n", + "43 Maxwell Vieira 1 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pdv[df_pdv['PDV']==21007]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -691,14 +659,14 @@ }, { "cell_type": "code", - "execution_count": 211, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\268247862.py:25: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\268247862.py:25: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.\n", " df_draft_ = pd.read_sql(query_est_draft, conn)\n" ] } @@ -736,7 +704,7 @@ }, { "cell_type": "code", - "execution_count": 212, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -745,7 +713,7 @@ }, { "cell_type": "code", - "execution_count": 213, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -785,56 +753,239 @@ " \n", " \n", " \n", - " 39251\n", - " 23711\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " A\n", - " CUIDADOS COM A PELE\n", - " 87.0\n", - " 0.0\n", - " 511\n", + " 128590\n", + " 24293\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 3\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 128840\n", + " 21278\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 2\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 128956\n", + " 12826\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 3\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 129361\n", + " 4560\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 5\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 129451\n", + " 5699\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", " 4\n", " 0\n", - " 9,20\n", - " 42.54\n", + " 0\n", + " 0,05\n", + " NaN\n", + " \n", + " \n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " 337558\n", + " 21647\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 4\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 345348\n", + " 20009\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 10\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 349112\n", + " 20968\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 8\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 358656\n", + " 12830\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 5\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", + " \n", + " \n", + " 359288\n", + " 20997\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " None\n", + " None\n", + " NaN\n", + " NaN\n", + " 3\n", + " 0\n", + " 0\n", + " 0\n", + " NaN\n", " \n", " \n", "\n", + "

73 rows × 12 columns

\n", "" ], "text/plain": [ - " PDV SKU DESCRICAO curva \\\n", - "39251 23711 48060 LILY CREM DES HID ACET CPO 250g V8 A \n", + " PDV SKU DESCRICAO curva categoria \\\n", + "128590 24293 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "128840 21278 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "128956 12826 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "129361 4560 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "129451 5699 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "... ... ... ... ... ... \n", + "337558 21647 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "345348 20009 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "349112 20968 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "358656 12830 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", + "359288 20997 1634 NSPA GEL ESF CPO MORANGO RUBY 175G None None \n", "\n", - " categoria proj_mar proj_mar+1 ESTOQUE ATUAL \\\n", - "39251 CUIDADOS COM A PELE 87.0 0.0 511 \n", + " proj_mar proj_mar+1 ESTOQUE ATUAL ESTOQUE EM TRANSITO \\\n", + "128590 NaN NaN 3 0 \n", + "128840 NaN NaN 2 0 \n", + "128956 NaN NaN 3 0 \n", + "129361 NaN NaN 5 0 \n", + "129451 NaN NaN 4 0 \n", + "... ... ... ... ... \n", + "337558 NaN NaN 4 0 \n", + "345348 NaN NaN 10 0 \n", + "349112 NaN NaN 8 0 \n", + "358656 NaN NaN 5 0 \n", + "359288 NaN NaN 3 0 \n", "\n", - " ESTOQUE EM TRANSITO PEDIDO PENDENTE DDV PREVISTO preço \n", - "39251 4 0 9,20 42.54 " + " PEDIDO PENDENTE DDV PREVISTO preço \n", + "128590 0 0 NaN \n", + "128840 0 0 NaN \n", + "128956 0 0 NaN \n", + "129361 0 0 NaN \n", + "129451 0 0,05 NaN \n", + "... ... ... ... \n", + "337558 0 0 NaN \n", + "345348 0 0 NaN \n", + "349112 0 0 NaN \n", + "358656 0 0 NaN \n", + "359288 0 0 NaN \n", + "\n", + "[73 rows x 12 columns]" ] }, - "execution_count": 213, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_draft[(df_draft['PDV']=='23711') & (df_draft['SKU']=='48060')].head()" + "df_draft[df_draft['SKU']=='1634']" ] }, { "cell_type": "code", - "execution_count": 214, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(350518, 12)" + "(350945, 12)" ] }, - "execution_count": 214, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -847,26 +998,26 @@ }, { "cell_type": "code", - "execution_count": 215, + "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\1765304903.py:1: SettingWithCopyWarning: \n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\1765304903.py:1: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df_draft['ESTOQUE ATUAL'] = df_draft['ESTOQUE ATUAL'].astype(float)\n", - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\1765304903.py:3: SettingWithCopyWarning: \n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\1765304903.py:3: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df_draft['ESTOQUE EM TRANSITO'] = df_draft['ESTOQUE EM TRANSITO'].astype(float)\n", - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\1765304903.py:5: SettingWithCopyWarning: \n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\1765304903.py:5: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -892,7 +1043,7 @@ "dtype: object" ] }, - "execution_count": 215, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -909,26 +1060,26 @@ }, { "cell_type": "code", - "execution_count": 216, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\1952797845.py:1: SettingWithCopyWarning: \n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\1952797845.py:1: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df_draft['DDV PREVISTO'] = df_draft['DDV PREVISTO'].str.replace(',','.')\n", - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\1952797845.py:3: SettingWithCopyWarning: \n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\1952797845.py:3: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df_draft['DDV PREVISTO'] = df_draft['DDV PREVISTO'].astype(float)\n", - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_22664\\1952797845.py:5: SettingWithCopyWarning: \n", + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\1952797845.py:5: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -947,7 +1098,7 @@ }, { "cell_type": "code", - "execution_count": 217, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -956,7 +1107,7 @@ }, { "cell_type": "code", - "execution_count": 218, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -965,19 +1116,19 @@ }, { "cell_type": "code", - "execution_count": 219, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "df_bi_preco = pd.read_excel(r\"C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistência Suprimentos - 2025\\SUPRIMENTOS\\DB_PROMOÇÕES\\BOTICARIO\\C13\\preço BI\\TABELA DE PREÇOS (2).xlsx\")\n", "\n", - "df_bi_preco = df_bi_preco.drop(columns=['Descrição','Tipo Preço','CATEGORIA','LINHA','MARCA'])\n", + "df_bi_preco = df_bi_preco.drop(columns=['Tipo Preço','CATEGORIA','LINHA','MARCA'])\n", "\n" ] }, { "cell_type": "code", - "execution_count": 220, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -986,16 +1137,230 @@ }, { "cell_type": "code", - "execution_count": 221, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0 1004\n", + "1 1080\n", + "2 1296\n", + "3 1302\n", + "4 1314\n", + "Name: SKU_FINAL, dtype: object" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "df_draft = pd.merge(df_draft,df_pivotadowawa,left_on=['PDV','SKU'],right_on=['PDV','SKU_FINAL'])" + "df_pivotadowawa['SKU_FINAL'] = df_pivotadowawa['SKU_FINAL'].astype(str)\n", + "\n", + "df_pivotadowawa['SKU_FINAL'].head()" ] }, { "cell_type": "code", - "execution_count": 222, + "execution_count": 24, + "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", + "
PDVSKUcurvacategoriaproj_marproj_mar+1ESTOQUE ATUALESTOQUE EM TRANSITOPEDIDO PENDENTEDDV PREVISTOpreço
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [PDV, SKU, curva, categoria, proj_mar, proj_mar+1, ESTOQUE ATUAL, ESTOQUE EM TRANSITO, PEDIDO PENDENTE, DDV PREVISTO, preço]\n", + "Index: []" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_draft[df_draft['SKU']=='1634']" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "df_draft = pd.merge(df_draft,df_pivotadowawa,left_on=['PDV','SKU'],right_on=['PDV','SKU_FINAL'],how='inner')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "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", + "
PDVSKUcurvacategoriaproj_marproj_mar+1ESTOQUE ATUALESTOQUE EM TRANSITOPEDIDO PENDENTEDDV PREVISTO...C202503C202504C202505C202506C202507C202508C202509C202510C202511C202512
\n", + "

0 rows × 31 columns

\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [PDV, SKU, curva, categoria, proj_mar, proj_mar+1, ESTOQUE ATUAL, ESTOQUE EM TRANSITO, PEDIDO PENDENTE, DDV PREVISTO, preço, SKU_FINAL, DESCRICAO, C202412, C202413, C202414, C202415, C202416, C202417, C202501, C202502, C202503, C202504, C202505, C202506, C202507, C202508, C202509, C202510, C202511, C202512]\n", + "Index: []\n", + "\n", + "[0 rows x 31 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_draft[df_draft['SKU']=='1634']" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(34265, 31)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final = pd.merge(left=df_tabela,right=df_pdv,on='MATCH',how='left')\n", + "\n", + "df_final = df_final.drop_duplicates()\n", + "\n", + "df_final.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PDV\n", + "12522 445\n", + "12817 445\n", + "12818 445\n", + "12820 445\n", + "12823 445\n", + " ... \n", + "24257 445\n", + "24268 445\n", + "24269 445\n", + "24293 445\n", + "23813 445\n", + "Name: count, Length: 77, dtype: int64" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final['PDV'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -1044,383 +1409,286 @@ " \n", " \n", " \n", - " 76\n", - " 12522\n", - " 48060\n", - " A\n", - " CUIDADOS COM A PELE\n", - " 14.0\n", - " 19.0\n", - " 42.0\n", + " 74681\n", + " 3546\n", + " 52627\n", + " B\n", + " CUIDADOS FACIAIS\n", + " 2.0\n", + " 2.0\n", " 0.0\n", + " 2.0\n", " 0.0\n", - " 0.68\n", - " ...\n", - " 14.0\n", - " 30.0\n", - " 11.0\n", - " 38.0\n", - " 10.0\n", - " 19.0\n", - " 23.0\n", - " 3.0\n", - " 19.0\n", - " 10.0\n", - " \n", - " \n", - " 1196\n", - " 12817\n", - " 48060\n", - " A\n", - " CUIDADOS COM A PELE\n", - " 61.0\n", - " 76.0\n", - " 87.0\n", - " 60.0\n", - " 0.0\n", - " 2.82\n", - " ...\n", - " 30.0\n", - " 82.0\n", - " 36.0\n", - " 219.0\n", - " 33.0\n", - " 79.0\n", - " 106.0\n", - " 44.0\n", - " 64.0\n", - " 9.0\n", - " \n", - " \n", - " 2375\n", - " 12818\n", - " 48060\n", - " A\n", - " CUIDADOS COM A PELE\n", - " 9.0\n", - " 12.0\n", - " 3.0\n", - " 0.0\n", - " 0.0\n", - " 0.44\n", + " 0.09\n", " ...\n", " 5.0\n", - " 8.0\n", - " 4.0\n", - " 20.0\n", - " 2.0\n", - " 8.0\n", - " 9.0\n", - " 7.0\n", - " 9.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", " 0.0\n", " \n", " \n", - " 3362\n", - " 12820\n", - " 48060\n", - " A\n", - " CUIDADOS COM A PELE\n", - " 11.0\n", - " 13.0\n", - " 40.0\n", + " 74682\n", + " 3546\n", + " 52627\n", + " B\n", + " CUIDADOS FACIAIS\n", + " 2.0\n", + " 2.0\n", " 0.0\n", + " 2.0\n", " 0.0\n", - " 0.49\n", + " 0.09\n", " ...\n", - " 9.0\n", - " 15.0\n", - " 8.0\n", - " 22.0\n", + " 0.0\n", + " 0.0\n", " 4.0\n", - " 24.0\n", - " 16.0\n", - " 7.0\n", - " 2.0\n", - " 2.0\n", - " \n", - " \n", - " 4320\n", - " 12823\n", - " 48060\n", - " A\n", - " CUIDADOS COM A PELE\n", - " 10.0\n", - " 12.0\n", - " 20.0\n", + " 3.0\n", " 0.0\n", - " 0.0\n", - " 0.46\n", - " ...\n", - " 5.0\n", - " 26.0\n", - " 6.0\n", - " 15.0\n", + " 3.0\n", + " 4.0\n", " 1.0\n", - " 5.0\n", - " 13.0\n", - " 7.0\n", - " 9.0\n", - " 0.0\n", + " 3.0\n", + " 3.0\n", " \n", " \n", "\n", - "

5 rows × 31 columns

\n", + "

2 rows × 31 columns

\n", "" ], "text/plain": [ - " PDV SKU curva categoria proj_mar proj_mar+1 \\\n", - "76 12522 48060 A CUIDADOS COM A PELE 14.0 19.0 \n", - "1196 12817 48060 A CUIDADOS COM A PELE 61.0 76.0 \n", - "2375 12818 48060 A CUIDADOS COM A PELE 9.0 12.0 \n", - "3362 12820 48060 A CUIDADOS COM A PELE 11.0 13.0 \n", - "4320 12823 48060 A CUIDADOS COM A PELE 10.0 12.0 \n", + " PDV SKU curva categoria proj_mar proj_mar+1 \\\n", + "74681 3546 52627 B CUIDADOS FACIAIS 2.0 2.0 \n", + "74682 3546 52627 B CUIDADOS FACIAIS 2.0 2.0 \n", "\n", - " ESTOQUE ATUAL ESTOQUE EM TRANSITO PEDIDO PENDENTE DDV PREVISTO ... \\\n", - "76 42.0 0.0 0.0 0.68 ... \n", - "1196 87.0 60.0 0.0 2.82 ... \n", - "2375 3.0 0.0 0.0 0.44 ... \n", - "3362 40.0 0.0 0.0 0.49 ... \n", - "4320 20.0 0.0 0.0 0.46 ... \n", + " ESTOQUE ATUAL ESTOQUE EM TRANSITO PEDIDO PENDENTE DDV PREVISTO ... \\\n", + "74681 0.0 2.0 0.0 0.09 ... \n", + "74682 0.0 2.0 0.0 0.09 ... \n", "\n", - " C202503 C202504 C202505 C202506 C202507 C202508 C202509 C202510 \\\n", - "76 14.0 30.0 11.0 38.0 10.0 19.0 23.0 3.0 \n", - "1196 30.0 82.0 36.0 219.0 33.0 79.0 106.0 44.0 \n", - "2375 5.0 8.0 4.0 20.0 2.0 8.0 9.0 7.0 \n", - "3362 9.0 15.0 8.0 22.0 4.0 24.0 16.0 7.0 \n", - "4320 5.0 26.0 6.0 15.0 1.0 5.0 13.0 7.0 \n", + " C202503 C202504 C202505 C202506 C202507 C202508 C202509 C202510 \\\n", + "74681 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "74682 0.0 0.0 4.0 3.0 0.0 3.0 4.0 1.0 \n", "\n", - " C202511 C202512 \n", - "76 19.0 10.0 \n", - "1196 64.0 9.0 \n", - "2375 9.0 0.0 \n", - "3362 2.0 2.0 \n", - "4320 9.0 0.0 \n", + " C202511 C202512 \n", + "74681 0.0 0.0 \n", + "74682 3.0 3.0 \n", "\n", - "[5 rows x 31 columns]" + "[2 rows x 31 columns]" ] }, - "execution_count": 222, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_draft[df_draft['SKU']=='48060'].head()" + "df_draft[(df_draft['SKU'] == '52627') & (df_draft['PDV'] == '3546') ].head()" ] }, { "cell_type": "code", - "execution_count": 223, - "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", - "
CicloRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...CatálogoTipo de produtoAção consumidorPercentual de desconto consumidorAção revendedorPercentual de desconto revendedorSortimento PSortimento MSortimento GMATCH
\n", - "

0 rows × 24 columns

\n", - "
" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [Ciclo, Região, Canal, Código, Descrição, IAF, Tipo de pedido, Foco, Unidade de negócio, Marca, Categoria, Subcategoria, Quantidade por caixa, Tipo de promoção, Catálogo, Tipo de produto, Ação consumidor, Percentual de desconto consumidor, Ação revendedor, Percentual de desconto revendedor, Sortimento P, Sortimento M, Sortimento G, MATCH]\n", - "Index: []\n", - "\n", - "[0 rows x 24 columns]" - ] - }, - "execution_count": 223, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_tabela[df_tabela['Código']=='48060']" - ] - }, - { - "cell_type": "code", - "execution_count": 224, + "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(47509, 31)" + "Index(['PDV', 'SKU', 'curva', 'categoria', 'proj_mar', 'proj_mar+1',\n", + " 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE',\n", + " 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'C202412', 'C202413', 'C202414',\n", + " 'C202415', 'C202416', 'C202417', 'C202501', 'C202502', 'C202503',\n", + " 'C202504', 'C202505', 'C202506', 'C202507', 'C202508', 'C202509',\n", + " 'C202510', 'C202511', 'C202512'],\n", + " dtype='object')" ] }, - "execution_count": 224, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final = pd.merge(left=df_tabela,right=df_pdv,on='MATCH',how='left')\n", + "df_draft = df_draft.drop(columns='DESCRICAO')\n", "\n", - "df_final = df_final.drop_duplicates()\n", - "\n", - "df_final.shape" + "df_draft.columns" ] }, { "cell_type": "code", - "execution_count": 225, - "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", - "
CicloRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...Sortimento MSortimento GMATCHPDVCANALDESCRIÇÃO PDVUFMARCAANALISTASUPERVISOR
\n", - "

0 rows × 31 columns

\n", - "
" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [Ciclo, Região, Canal, Código, Descrição, IAF, Tipo de pedido, Foco, Unidade de negócio, Marca, Categoria, Subcategoria, Quantidade por caixa, Tipo de promoção, Catálogo, Tipo de produto, Ação consumidor, Percentual de desconto consumidor, Ação revendedor, Percentual de desconto revendedor, Sortimento P, Sortimento M, Sortimento G, MATCH, PDV, CANAL, DESCRIÇÃO PDV, UF, MARCA, ANALISTA, SUPERVISOR]\n", - "Index: []\n", - "\n", - "[0 rows x 31 columns]" - ] - }, - "execution_count": 225, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final[df_final['Código']=='48060'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": 226, + "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PDV\n", - "12522 617\n", - "12817 617\n", - "12818 617\n", - "12820 617\n", - "12823 617\n", - " ... \n", - "24257 617\n", - "24268 617\n", - "24269 617\n", - "24293 617\n", - "23813 617\n", - "Name: count, Length: 77, dtype: int64" + "20998 1209\n", + "23711 1190\n", + "20997 1182\n", + "20993 1172\n", + "20996 1161\n", + " ... \n", + "24269 490\n", + "24253 472\n", + "24268 452\n", + "24254 439\n", + "24258 336\n", + "Name: count, Length: 75, dtype: int64" ] }, - "execution_count": 226, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final['PDV'].value_counts()" + "numericos = df_draft.columns[-18:]\n", + "\n", + "chaves = [col for col in df_draft.columns if col not in numericos]\n", + "\n", + "# 2. Fazer o groupby\n", + "df_draft_agg = (\n", + " df_draft\n", + " .groupby(chaves, as_index=False)[numericos]\n", + " .max()\n", + ")\n", + "\n", + "df_draft_agg['PDV'].value_counts()" ] }, { "cell_type": "code", - "execution_count": 227, + "execution_count": 32, + "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", + "
PDVSKUcurvacategoriaproj_marproj_mar+1ESTOQUE ATUALESTOQUE EM TRANSITOPEDIDO PENDENTEDDV PREVISTO...C202503C202504C202505C202506C202507C202508C202509C202510C202511C202512
\n", + "

0 rows × 30 columns

\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [PDV, SKU, curva, categoria, proj_mar, proj_mar+1, ESTOQUE ATUAL, ESTOQUE EM TRANSITO, PEDIDO PENDENTE, DDV PREVISTO, preço, SKU_FINAL, C202412, C202413, C202414, C202415, C202416, C202417, C202501, C202502, C202503, C202504, C202505, C202506, C202507, C202508, C202509, C202510, C202511, C202512]\n", + "Index: []\n", + "\n", + "[0 rows x 30 columns]" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_draft[df_draft['SKU']==1634]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "df_draft1 = df_draft_agg" + ] + }, + { + "cell_type": "code", + "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(49398, 61)" + "Index(['PDV', 'SKU', 'curva', 'categoria', 'proj_mar', 'proj_mar+1',\n", + " 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE',\n", + " 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'C202412', 'C202413', 'C202414',\n", + " 'C202415', 'C202416', 'C202417', 'C202501', 'C202502', 'C202503',\n", + " 'C202504', 'C202505', 'C202506', 'C202507', 'C202508', 'C202509',\n", + " 'C202510', 'C202511', 'C202512'],\n", + " dtype='object')" ] }, - "execution_count": 227, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_draft1.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "df_draft1.to_clipboard()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(34265, 60)" + ] + }, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -1430,13 +1698,13 @@ "df_final['Código'] = df_final['Código'].astype('str')\n", "\n", "\n", - "df_final = pd.merge(left=df_final,right=df_draft,left_on=['PDV','Código'],right_on=['PDV','SKU'],how='left')\n", + "df_final = pd.merge(left=df_final,right=df_draft1,left_on=['PDV','Código'],right_on=['PDV','SKU'],how='left')\n", "df_final.shape" ] }, { "cell_type": "code", - "execution_count": 228, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1485,188 +1753,188 @@ " \n", " \n", " \n", - " 17861\n", - " C202514\n", + " 12936\n", + " 202515\n", " NNE\n", - " VD\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " BOTI\n", + " Loja\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " Não\n", + " Especial\n", + " Não\n", + " BOT\n", + " NATIVA SPA\n", " ...\n", - " 14.0\n", - " 30.0\n", - " 11.0\n", - " 38.0\n", - " 10.0\n", - " 19.0\n", - " 23.0\n", - " 3.0\n", - " 19.0\n", - " 10.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 17862\n", - " C202514\n", + " 12937\n", + " 202515\n", " NNE\n", - " VD\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " BOTI\n", + " Loja\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " Não\n", + " Especial\n", + " Não\n", + " BOT\n", + " NATIVA SPA\n", " ...\n", - " 30.0\n", - " 82.0\n", - " 36.0\n", - " 219.0\n", - " 33.0\n", - " 79.0\n", - " 106.0\n", - " 44.0\n", - " 64.0\n", - " 9.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 17863\n", - " C202514\n", + " 12938\n", + " 202515\n", " NNE\n", - " VD\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " BOTI\n", + " Loja\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " Não\n", + " Especial\n", + " Não\n", + " BOT\n", + " NATIVA SPA\n", " ...\n", - " 5.0\n", - " 8.0\n", - " 4.0\n", - " 20.0\n", - " 2.0\n", - " 8.0\n", - " 9.0\n", - " 7.0\n", - " 9.0\n", - " 0.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 17864\n", - " C202514\n", + " 12939\n", + " 202515\n", " NNE\n", - " VD\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " BOTI\n", + " Loja\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " Não\n", + " Especial\n", + " Não\n", + " BOT\n", + " NATIVA SPA\n", " ...\n", - " 9.0\n", - " 15.0\n", - " 8.0\n", - " 22.0\n", - " 4.0\n", - " 24.0\n", - " 16.0\n", - " 7.0\n", - " 2.0\n", - " 2.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", - " 17865\n", - " C202514\n", + " 12940\n", + " 202515\n", " NNE\n", - " VD\n", - " 48060\n", - " LILY CREM DES HID ACET CPO 250g V8\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " BOTI\n", + " Loja\n", + " 1634\n", + " NSPA GEL ESF CPO MORANGO RUBY 175G\n", + " Não\n", + " Especial\n", + " Não\n", + " BOT\n", + " NATIVA SPA\n", " ...\n", - " 5.0\n", - " 26.0\n", - " 6.0\n", - " 15.0\n", - " 1.0\n", - " 5.0\n", - " 13.0\n", - " 7.0\n", - " 9.0\n", - " 0.0\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", + " NaN\n", " \n", " \n", "\n", - "

5 rows × 61 columns

\n", + "

5 rows × 60 columns

\n", "" ], "text/plain": [ - " Ciclo Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", + " Ciclo Região Canal Código Descrição IAF \\\n", + "12936 202515 NNE Loja 1634 NSPA GEL ESF CPO MORANGO RUBY 175G Não \n", + "12937 202515 NNE Loja 1634 NSPA GEL ESF CPO MORANGO RUBY 175G Não \n", + "12938 202515 NNE Loja 1634 NSPA GEL ESF CPO MORANGO RUBY 175G Não \n", + "12939 202515 NNE Loja 1634 NSPA GEL ESF CPO MORANGO RUBY 175G Não \n", + "12940 202515 NNE Loja 1634 NSPA GEL ESF CPO MORANGO RUBY 175G Não \n", "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... C202503 C202504 \\\n", - "17861 NaN NaN NaN BOTI ... 14.0 30.0 \n", - "17862 NaN NaN NaN BOTI ... 30.0 82.0 \n", - "17863 NaN NaN NaN BOTI ... 5.0 8.0 \n", - "17864 NaN NaN NaN BOTI ... 9.0 15.0 \n", - "17865 NaN NaN NaN BOTI ... 5.0 26.0 \n", + " Tipo de pedido Foco Unidade de negócio Marca ... C202503 C202504 \\\n", + "12936 Especial Não BOT NATIVA SPA ... NaN NaN \n", + "12937 Especial Não BOT NATIVA SPA ... NaN NaN \n", + "12938 Especial Não BOT NATIVA SPA ... NaN NaN \n", + "12939 Especial Não BOT NATIVA SPA ... NaN NaN \n", + "12940 Especial Não BOT NATIVA SPA ... NaN NaN \n", "\n", - " C202505 C202506 C202507 C202508 C202509 C202510 C202511 C202512 \n", - "17861 11.0 38.0 10.0 19.0 23.0 3.0 19.0 10.0 \n", - "17862 36.0 219.0 33.0 79.0 106.0 44.0 64.0 9.0 \n", - "17863 4.0 20.0 2.0 8.0 9.0 7.0 9.0 0.0 \n", - "17864 8.0 22.0 4.0 24.0 16.0 7.0 2.0 2.0 \n", - "17865 6.0 15.0 1.0 5.0 13.0 7.0 9.0 0.0 \n", + " C202505 C202506 C202507 C202508 C202509 C202510 C202511 C202512 \n", + "12936 NaN NaN NaN NaN NaN NaN NaN NaN \n", + "12937 NaN NaN NaN NaN NaN NaN NaN NaN \n", + "12938 NaN NaN NaN NaN NaN NaN NaN NaN \n", + "12939 NaN NaN NaN NaN NaN NaN NaN NaN \n", + "12940 NaN NaN NaN NaN NaN NaN NaN NaN \n", "\n", - "[5 rows x 61 columns]" + "[5 rows x 60 columns]" ] }, - "execution_count": 228, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final[df_final['Código']=='48060'].head()" + "df_final[df_final['Código']=='1634'].head()" ] }, { "cell_type": "code", - "execution_count": 229, + "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PDV\n", - "23711 659\n", - "21278 656\n", - "20993 656\n", - "20997 656\n", - "21375 654\n", + "12522 445\n", + "12817 445\n", + "12818 445\n", + "12820 445\n", + "12823 445\n", " ... \n", - "24257 617\n", - "24268 617\n", - "24269 617\n", - "24293 617\n", - "23813 617\n", + "24257 445\n", + "24268 445\n", + "24269 445\n", + "24293 445\n", + "23813 445\n", "Name: count, Length: 77, dtype: int64" ] }, - "execution_count": 229, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -1677,17 +1945,17 @@ }, { "cell_type": "code", - "execution_count": 230, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "df_final = df_final.drop(columns=['Sortimento P', 'Sortimento M',\n", - " 'Sortimento G','MARCA','SKU'])" + " 'Sortimento G','MARCA'])" ] }, { "cell_type": "code", - "execution_count": 231, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -1696,7 +1964,7 @@ }, { "cell_type": "code", - "execution_count": 232, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -1742,7 +2010,7 @@ " 14\n", " C2025\n", " C202516\n", - " 31\n", + " 25\n", " \n", " \n", "\n", @@ -1753,10 +2021,10 @@ "2367 C202514 2025-09-22 2025-10-12 21 2025-09-22 14 \n", "\n", " ANO_CICLO CICLOMAIS2 dias_ate_inicio \n", - "2367 C2025 C202516 31 " + "2367 C2025 C202516 25 " ] }, - "execution_count": 232, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1793,7 +2061,7 @@ }, { "cell_type": "code", - "execution_count": 233, + "execution_count": 42, "metadata": {}, "outputs": [], "source": [ @@ -1802,7 +2070,7 @@ }, { "cell_type": "code", - "execution_count": 234, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -1811,7 +2079,7 @@ }, { "cell_type": "code", - "execution_count": 235, + "execution_count": 44, "metadata": {}, "outputs": [], "source": [ @@ -1820,16 +2088,16 @@ }, { "cell_type": "code", - "execution_count": 236, + "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(49398, 61)" + "(34265, 61)" ] }, - "execution_count": 236, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -1841,223 +2109,7 @@ }, { "cell_type": "code", - "execution_count": 237, - "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", - "
Ciclo_xRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...C202508C202509C202510C202511C202512Ciclo_yINICIO CICLOFIM CICLODURAÇÃOdias_ate_inicio
17861C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...19.023.03.019.010.0C2025142025-09-222025-10-122131
17862C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...79.0106.044.064.09.0C2025142025-09-222025-10-122131
17863C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...8.09.07.09.00.0C2025142025-09-222025-10-122131
17864C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...24.016.07.02.02.0C2025142025-09-222025-10-122131
17865C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...5.013.07.09.00.0C2025142025-09-222025-10-122131
\n", - "

5 rows × 61 columns

\n", - "
" - ], - "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... C202508 C202509 \\\n", - "17861 NaN NaN NaN BOTI ... 19.0 23.0 \n", - "17862 NaN NaN NaN BOTI ... 79.0 106.0 \n", - "17863 NaN NaN NaN BOTI ... 8.0 9.0 \n", - "17864 NaN NaN NaN BOTI ... 24.0 16.0 \n", - "17865 NaN NaN NaN BOTI ... 5.0 13.0 \n", - "\n", - " C202510 C202511 C202512 Ciclo_y INICIO CICLO FIM CICLO DURAÇÃO \\\n", - "17861 3.0 19.0 10.0 C202514 2025-09-22 2025-10-12 21 \n", - "17862 44.0 64.0 9.0 C202514 2025-09-22 2025-10-12 21 \n", - "17863 7.0 9.0 0.0 C202514 2025-09-22 2025-10-12 21 \n", - "17864 7.0 2.0 2.0 C202514 2025-09-22 2025-10-12 21 \n", - "17865 7.0 9.0 0.0 C202514 2025-09-22 2025-10-12 21 \n", - "\n", - " dias_ate_inicio \n", - "17861 31 \n", - "17862 31 \n", - "17863 31 \n", - "17864 31 \n", - "17865 31 \n", - "\n", - "[5 rows x 61 columns]" - ] - }, - "execution_count": 237, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final[df_final['SKU_FINAL']=='48060'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": 238, + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -2067,7 +2119,7 @@ }, { "cell_type": "code", - "execution_count": 239, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -2093,6 +2145,7 @@ " \n", " SKU1\n", " SKU2\n", + " Descrição\n", " UF\n", " PC\n", " PV\n", @@ -2105,6 +2158,7 @@ " 0\n", " 84918\n", " 84918\n", + " ESTJ BOTI CALENDARIO ADVENTO NAT/24\n", " AL\n", " 393.70\n", " 1300.0\n", @@ -2115,6 +2169,7 @@ " 1\n", " 84918\n", " 84918\n", + " ESTJ BOTI CALENDARIO ADVENTO NAT/24\n", " BA\n", " 436.73\n", " 1300.0\n", @@ -2125,6 +2180,7 @@ " 2\n", " 84918\n", " 84918\n", + " ESTJ BOTI CALENDARIO ADVENTO NAT/24\n", " SE\n", " 379.94\n", " 1300.0\n", @@ -2135,6 +2191,7 @@ " 3\n", " 54230\n", " 54230\n", + " MALBEC DES COL 20 ANOS 100ml\n", " AL\n", " 138.54\n", " 499.9\n", @@ -2145,6 +2202,7 @@ " 4\n", " 54230\n", " 54230\n", + " MALBEC DES COL 20 ANOS 100ml\n", " BA\n", " 148.66\n", " 499.9\n", @@ -2156,15 +2214,22 @@ "" ], "text/plain": [ - " SKU1 SKU2 UF PC PV chave sku2 chave sku1\n", - "0 84918 84918 AL 393.70 1300.0 AL84918 AL84918\n", - "1 84918 84918 BA 436.73 1300.0 BA84918 BA84918\n", - "2 84918 84918 SE 379.94 1300.0 SE84918 SE84918\n", - "3 54230 54230 AL 138.54 499.9 AL54230 AL54230\n", - "4 54230 54230 BA 148.66 499.9 BA54230 BA54230" + " SKU1 SKU2 Descrição UF PC PV \\\n", + "0 84918 84918 ESTJ BOTI CALENDARIO ADVENTO NAT/24 AL 393.70 1300.0 \n", + "1 84918 84918 ESTJ BOTI CALENDARIO ADVENTO NAT/24 BA 436.73 1300.0 \n", + "2 84918 84918 ESTJ BOTI CALENDARIO ADVENTO NAT/24 SE 379.94 1300.0 \n", + "3 54230 54230 MALBEC DES COL 20 ANOS 100ml AL 138.54 499.9 \n", + "4 54230 54230 MALBEC DES COL 20 ANOS 100ml BA 148.66 499.9 \n", + "\n", + " chave sku2 chave sku1 \n", + "0 AL84918 AL84918 \n", + "1 BA84918 BA84918 \n", + "2 SE84918 SE84918 \n", + "3 AL54230 AL54230 \n", + "4 BA54230 BA54230 " ] }, - "execution_count": 239, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -2176,16 +2241,16 @@ }, { "cell_type": "code", - "execution_count": 240, + "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(49398, 67)" + "(34265, 68)" ] }, - "execution_count": 240, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -2199,223 +2264,7 @@ }, { "cell_type": "code", - "execution_count": 241, - "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", - "
Ciclo_xRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...INICIO CICLOFIM CICLODURAÇÃOdias_ate_inicioSKU1SKU2PCPVchave sku2chave sku1
17861C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...2025-09-222025-10-122131110854806038.03139.9AL48060AL11085
17862C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...2025-09-222025-10-122131110854806038.03139.9AL48060AL11085
17863C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...2025-09-222025-10-122131110854806038.03139.9AL48060AL11085
17864C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...2025-09-222025-10-122131110854806038.03139.9AL48060AL11085
17865C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...2025-09-222025-10-122131110854806038.03139.9AL48060AL11085
\n", - "

5 rows × 67 columns

\n", - "
" - ], - "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... INICIO CICLO \\\n", - "17861 NaN NaN NaN BOTI ... 2025-09-22 \n", - "17862 NaN NaN NaN BOTI ... 2025-09-22 \n", - "17863 NaN NaN NaN BOTI ... 2025-09-22 \n", - "17864 NaN NaN NaN BOTI ... 2025-09-22 \n", - "17865 NaN NaN NaN BOTI ... 2025-09-22 \n", - "\n", - " FIM CICLO DURAÇÃO dias_ate_inicio SKU1 SKU2 PC PV \\\n", - "17861 2025-10-12 21 31 11085 48060 38.03 139.9 \n", - "17862 2025-10-12 21 31 11085 48060 38.03 139.9 \n", - "17863 2025-10-12 21 31 11085 48060 38.03 139.9 \n", - "17864 2025-10-12 21 31 11085 48060 38.03 139.9 \n", - "17865 2025-10-12 21 31 11085 48060 38.03 139.9 \n", - "\n", - " chave sku2 chave sku1 \n", - "17861 AL48060 AL11085 \n", - "17862 AL48060 AL11085 \n", - "17863 AL48060 AL11085 \n", - "17864 AL48060 AL11085 \n", - "17865 AL48060 AL11085 \n", - "\n", - "[5 rows x 67 columns]" - ] - }, - "execution_count": 241, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final[df_final['SKU_FINAL']=='48060'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": 242, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -2424,14 +2273,14 @@ }, { "cell_type": "code", - "execution_count": 243, + "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "(49398, 71)\n" + "(34265, 72)\n" ] } ], @@ -2454,216 +2303,7 @@ }, { "cell_type": "code", - "execution_count": 244, - "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", - "
Ciclo_xRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...SKU1_xSKU2_xPC_xPV_xchave sku2chave sku1SKU1_ySKU2_yPC_yPV_y
17861C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...110854806038.03139.9AL48060AL11085<NA><NA>NaNNaN
17862C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...110854806038.03139.9AL48060AL11085<NA><NA>NaNNaN
17863C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...110854806038.03139.9AL48060AL11085<NA><NA>NaNNaN
17864C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...110854806038.03139.9AL48060AL11085<NA><NA>NaNNaN
17865C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...110854806038.03139.9AL48060AL11085<NA><NA>NaNNaN
\n", - "

5 rows × 71 columns

\n", - "
" - ], - "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... SKU1_x SKU2_x \\\n", - "17861 NaN NaN NaN BOTI ... 11085 48060 \n", - "17862 NaN NaN NaN BOTI ... 11085 48060 \n", - "17863 NaN NaN NaN BOTI ... 11085 48060 \n", - "17864 NaN NaN NaN BOTI ... 11085 48060 \n", - "17865 NaN NaN NaN BOTI ... 11085 48060 \n", - "\n", - " PC_x PV_x chave sku2 chave sku1 SKU1_y SKU2_y PC_y PV_y \n", - "17861 38.03 139.9 AL48060 AL11085 NaN NaN \n", - "17862 38.03 139.9 AL48060 AL11085 NaN NaN \n", - "17863 38.03 139.9 AL48060 AL11085 NaN NaN \n", - "17864 38.03 139.9 AL48060 AL11085 NaN NaN \n", - "17865 38.03 139.9 AL48060 AL11085 NaN NaN \n", - "\n", - "[5 rows x 71 columns]" - ] - }, - "execution_count": 244, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final[df_final['SKU_FINAL']=='48060'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": 245, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -2675,19 +2315,19 @@ }, { "cell_type": "code", - "execution_count": 246, + "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CANAL\n", - "TODOS 39069\n", - "VD 10329\n", + "TODOS 27145\n", + "VD 7120\n", "Name: count, dtype: int64" ] }, - "execution_count": 246, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -2700,7 +2340,7 @@ }, { "cell_type": "code", - "execution_count": 247, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ @@ -2709,223 +2349,7 @@ }, { "cell_type": "code", - "execution_count": 248, - "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", - "
Ciclo_xRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...PC_xPV_xchave sku2chave sku1SKU1_ySKU2_yPC_yPV_yPRECO DE COMPRAPRECO DE VENDA
17861C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...38.03139.9AL48060AL11085<NA><NA>NaNNaN38.03139.9
17862C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...38.03139.9AL48060AL11085<NA><NA>NaNNaN38.03139.9
17863C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...38.03139.9AL48060AL11085<NA><NA>NaNNaN38.03139.9
17864C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...38.03139.9AL48060AL11085<NA><NA>NaNNaN38.03139.9
17865C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...38.03139.9AL48060AL11085<NA><NA>NaNNaN38.03139.9
\n", - "

5 rows × 73 columns

\n", - "
" - ], - "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... PC_x PV_x \\\n", - "17861 NaN NaN NaN BOTI ... 38.03 139.9 \n", - "17862 NaN NaN NaN BOTI ... 38.03 139.9 \n", - "17863 NaN NaN NaN BOTI ... 38.03 139.9 \n", - "17864 NaN NaN NaN BOTI ... 38.03 139.9 \n", - "17865 NaN NaN NaN BOTI ... 38.03 139.9 \n", - "\n", - " chave sku2 chave sku1 SKU1_y SKU2_y PC_y PV_y PRECO DE COMPRA \\\n", - "17861 AL48060 AL11085 NaN NaN 38.03 \n", - "17862 AL48060 AL11085 NaN NaN 38.03 \n", - "17863 AL48060 AL11085 NaN NaN 38.03 \n", - "17864 AL48060 AL11085 NaN NaN 38.03 \n", - "17865 AL48060 AL11085 NaN NaN 38.03 \n", - "\n", - " PRECO DE VENDA \n", - "17861 139.9 \n", - "17862 139.9 \n", - "17863 139.9 \n", - "17864 139.9 \n", - "17865 139.9 \n", - "\n", - "[5 rows x 73 columns]" - ] - }, - "execution_count": 248, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final[df_final['SKU_FINAL']=='48060'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": 249, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -2936,7 +2360,7 @@ }, { "cell_type": "code", - "execution_count": 250, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -2945,7 +2369,7 @@ }, { "cell_type": "code", - "execution_count": 251, + "execution_count": 56, "metadata": {}, "outputs": [], "source": [ @@ -2954,7 +2378,7 @@ }, { "cell_type": "code", - "execution_count": 252, + "execution_count": 57, "metadata": {}, "outputs": [ { @@ -2963,7 +2387,7 @@ "np.int64(0)" ] }, - "execution_count": 252, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -2975,439 +2399,41 @@ }, { "cell_type": "code", - "execution_count": 253, + "execution_count": 58, "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", - "
Ciclo_xRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...Ciclo_yINICIO CICLOFIM CICLODURAÇÃOdias_ate_iniciochave sku2chave sku1PRECO DE COMPRAPRECO DE VENDAUFPRODUTO
17861C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17862C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17863C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17864C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17865C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
\n", - "

5 rows × 64 columns

\n", - "
" - ], "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... Ciclo_y \\\n", - "17861 NaN NaN NaN BOTI ... C202514 \n", - "17862 NaN NaN NaN BOTI ... C202514 \n", - "17863 NaN NaN NaN BOTI ... C202514 \n", - "17864 NaN NaN NaN BOTI ... C202514 \n", - "17865 NaN NaN NaN BOTI ... C202514 \n", - "\n", - " INICIO CICLO FIM CICLO DURAÇÃO dias_ate_inicio chave sku2 \\\n", - "17861 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17862 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17863 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17864 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17865 2025-09-22 2025-10-12 21 31 AL48060 \n", - "\n", - " chave sku1 PRECO DE COMPRA PRECO DE VENDA UFPRODUTO \n", - "17861 AL11085 38.03 139.9 AL48060 \n", - "17862 AL11085 38.03 139.9 AL48060 \n", - "17863 AL11085 38.03 139.9 AL48060 \n", - "17864 AL11085 38.03 139.9 AL48060 \n", - "17865 AL11085 38.03 139.9 AL48060 \n", - "\n", - "[5 rows x 64 columns]" + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", + " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", + " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", + " 'Percentual de desconto consumidor', 'Ação revendedor',\n", + " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', 'C202412', 'C202413', 'C202414', 'C202415', 'C202416',\n", + " 'C202417', 'C202501', 'C202502', 'C202503', 'C202504', 'C202505',\n", + " 'C202506', 'C202507', 'C202508', 'C202509', 'C202510', 'C202511',\n", + " 'C202512', 'Ciclo_y', 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO',\n", + " 'dias_ate_inicio', 'Descrição_y', 'chave sku2', 'chave sku1',\n", + " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO'],\n", + " dtype='object')" ] }, - "execution_count": 253, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final[df_final['SKU_FINAL']=='48060'].head()" + "df_final.columns" ] }, { "cell_type": "code", - "execution_count": 254, - "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", - "
Ciclo_xRegiãoCanalCódigoDescriçãoIAFTipo de pedidoFocoUnidade de negócioMarca...Ciclo_yINICIO CICLOFIM CICLODURAÇÃOdias_ate_iniciochave sku2chave sku1PRECO DE COMPRAPRECO DE VENDAUFPRODUTO
17861C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17862C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17863C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17864C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
17865C202514NNEVD48060LILY CREM DES HID ACET CPO 250g V8NaNNaNNaNNaNBOTI...C2025142025-09-222025-10-122131AL48060AL1108538.03139.9AL48060
\n", - "

5 rows × 64 columns

\n", - "
" - ], - "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "17861 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17862 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17863 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17864 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "17865 C202514 NNE VD 48060 LILY CREM DES HID ACET CPO 250g V8 NaN \n", - "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... Ciclo_y \\\n", - "17861 NaN NaN NaN BOTI ... C202514 \n", - "17862 NaN NaN NaN BOTI ... C202514 \n", - "17863 NaN NaN NaN BOTI ... C202514 \n", - "17864 NaN NaN NaN BOTI ... C202514 \n", - "17865 NaN NaN NaN BOTI ... C202514 \n", - "\n", - " INICIO CICLO FIM CICLO DURAÇÃO dias_ate_inicio chave sku2 \\\n", - "17861 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17862 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17863 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17864 2025-09-22 2025-10-12 21 31 AL48060 \n", - "17865 2025-09-22 2025-10-12 21 31 AL48060 \n", - "\n", - " chave sku1 PRECO DE COMPRA PRECO DE VENDA UFPRODUTO \n", - "17861 AL11085 38.03 139.9 AL48060 \n", - "17862 AL11085 38.03 139.9 AL48060 \n", - "17863 AL11085 38.03 139.9 AL48060 \n", - "17864 AL11085 38.03 139.9 AL48060 \n", - "17865 AL11085 38.03 139.9 AL48060 \n", - "\n", - "[5 rows x 64 columns]" - ] - }, - "execution_count": 254, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final[df_final['SKU_FINAL']=='48060'].head()" - ] - }, - { - "cell_type": "code", - "execution_count": 255, + "execution_count": 59, "metadata": {}, "outputs": [], "source": [ @@ -3424,7 +2450,7 @@ }, { "cell_type": "code", - "execution_count": 256, + "execution_count": 60, "metadata": {}, "outputs": [ { @@ -3553,7 +2579,7 @@ "5171 16 " ] }, - "execution_count": 256, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } @@ -3564,7 +2590,7 @@ }, { "cell_type": "code", - "execution_count": 257, + "execution_count": 61, "metadata": {}, "outputs": [], "source": [ @@ -3573,32 +2599,33 @@ }, { "cell_type": "code", - "execution_count": 258, + "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " 'C202412', 'C202413', 'C202414', 'C202415', 'C202416', 'C202417',\n", - " 'C202501', 'C202502', 'C202503', 'C202504', 'C202505', 'C202506',\n", - " 'C202507', 'C202508', 'C202509', 'C202510', 'C202511', 'C202512',\n", - " 'Ciclo_y', 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio',\n", - " 'chave sku2', 'chave sku1', 'PRECO DE COMPRA', 'PRECO DE VENDA',\n", - " 'UFPRODUTO', 'PDV GINSENG', 'PRODUTO', '202401', '202402', '202403',\n", - " '202404', '202405', '202406', '202407', '202408', '202409', '202410',\n", - " '202411', '202412', '202413', '202414', '202415', '202416'],\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', 'C202412', 'C202413', 'C202414', 'C202415', 'C202416',\n", + " 'C202417', 'C202501', 'C202502', 'C202503', 'C202504', 'C202505',\n", + " 'C202506', 'C202507', 'C202508', 'C202509', 'C202510', 'C202511',\n", + " 'C202512', 'Ciclo_y', 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO',\n", + " 'dias_ate_inicio', 'Descrição_y', 'chave sku2', 'chave sku1',\n", + " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", + " 'PRODUTO', '202401', '202402', '202403', '202404', '202405', '202406',\n", + " '202407', '202408', '202409', '202410', '202411', '202412', '202413',\n", + " '202414', '202415', '202416'],\n", " dtype='object')" ] }, - "execution_count": 258, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } @@ -3609,14 +2636,46 @@ }, { "cell_type": "code", - "execution_count": 259, + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['202401', '202402', '202403', '202404', '202405', '202406', '202407',\n", + " '202408', '202409', '202410', '202411', '202412', '202413', '202414',\n", + " '202415', '202416'],\n", + " dtype='object')" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final.columns[-16:]" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "df_final.to_clipboard()" + ] + }, + { + "cell_type": "code", + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "import re\n", "\n", "# identificar colunas de ciclo puro (ex: '202407')\n", - "colunas_ciclo_puro = [col for col in df_final.columns[-16:-1]]\n", + "colunas_ciclo_puro = [col for col in df_final.columns[-16:]]\n", "\n", "for col in colunas_ciclo_puro:\n", " col_hist = f'C{col}'\n", @@ -3631,30 +2690,31 @@ }, { "cell_type": "code", - "execution_count": 260, + "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " 'C202412', 'C202413', 'C202414', 'C202415', 'C202416', 'C202417',\n", - " 'C202501', 'C202502', 'C202503', 'C202504', 'C202505', 'C202506',\n", - " 'C202507', 'C202508', 'C202509', 'C202510', 'C202511', 'C202512',\n", - " 'Ciclo_y', 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio',\n", - " 'chave sku2', 'chave sku1', 'PRECO DE COMPRA', 'PRECO DE VENDA',\n", - " 'UFPRODUTO', 'PDV GINSENG', 'PRODUTO', '202416'],\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', 'C202412', 'C202413', 'C202414', 'C202415', 'C202416',\n", + " 'C202417', 'C202501', 'C202502', 'C202503', 'C202504', 'C202505',\n", + " 'C202506', 'C202507', 'C202508', 'C202509', 'C202510', 'C202511',\n", + " 'C202512', 'Ciclo_y', 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO',\n", + " 'dias_ate_inicio', 'Descrição_y', 'chave sku2', 'chave sku1',\n", + " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", + " 'PRODUTO'],\n", " dtype='object')" ] }, - "execution_count": 260, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -3665,7 +2725,7 @@ }, { "cell_type": "code", - "execution_count": 261, + "execution_count": 67, "metadata": {}, "outputs": [ { @@ -3794,7 +2854,7 @@ "4 C202505 2025-04-01 " ] }, - "execution_count": 261, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -3811,7 +2871,7 @@ }, { "cell_type": "code", - "execution_count": 262, + "execution_count": 68, "metadata": {}, "outputs": [], "source": [ @@ -3824,7 +2884,7 @@ }, { "cell_type": "code", - "execution_count": 263, + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -3836,7 +2896,7 @@ " dtype='object')" ] }, - "execution_count": 263, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -3847,30 +2907,30 @@ }, { "cell_type": "code", - "execution_count": 264, + "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " '202412', '202413', '202414', '202415', '202416', '202417', '202501',\n", - " '202502', '202503', '202504', '202505', '202506', '202507', '202508',\n", - " '202509', '202510', '202511', '202512', 'Ciclo_y', 'INICIO CICLO',\n", - " 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'chave sku2', 'chave sku1',\n", - " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", - " 'PRODUTO', '202416'],\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'Ciclo_y',\n", + " 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio',\n", + " 'Descrição_y', 'chave sku2', 'chave sku1', 'PRECO DE COMPRA',\n", + " 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG', 'PRODUTO'],\n", " dtype='object')" ] }, - "execution_count": 264, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } @@ -3886,7 +2946,7 @@ }, { "cell_type": "code", - "execution_count": 265, + "execution_count": 71, "metadata": {}, "outputs": [ { @@ -3914,7 +2974,7 @@ " Região\n", " Canal\n", " Código\n", - " Descrição\n", + " Descrição_x\n", " IAF\n", " Tipo de pedido\n", " Foco\n", @@ -3936,16 +2996,16 @@ " \n", " \n", " 0\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", " 0.0\n", " 0.0\n", @@ -3960,16 +3020,16 @@ " \n", " \n", " 1\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", " 0.0\n", " 0.0\n", @@ -3984,16 +3044,16 @@ " \n", " \n", " 2\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", " 0.0\n", " 0.0\n", @@ -4008,16 +3068,16 @@ " \n", " \n", " 3\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", " 0.0\n", " 0.0\n", @@ -4032,16 +3092,16 @@ " \n", " \n", " 4\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", " 0.0\n", " 0.0\n", @@ -4060,31 +3120,31 @@ "" ], "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "0 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "1 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "2 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "3 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "4 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", + " Ciclo_x Região Canal Código Descrição_x IAF \\\n", + "0 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "1 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "2 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "3 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "4 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... C202415 C202416 \\\n", - "0 0.0 0.0 0.0 BOTI ... 0.0 0.0 \n", - "1 0.0 0.0 0.0 BOTI ... 0.0 0.0 \n", - "2 0.0 0.0 0.0 BOTI ... 0.0 0.0 \n", - "3 0.0 0.0 0.0 BOTI ... 0.0 0.0 \n", - "4 0.0 0.0 0.0 BOTI ... 0.0 0.0 \n", + " Tipo de pedido Foco Unidade de negócio Marca ... C202415 C202416 C202417 \\\n", + "0 Semanal Não BOT ARBO ... 0.0 0.0 0.0 \n", + "1 Semanal Não BOT ARBO ... 0.0 0.0 0.0 \n", + "2 Semanal Não BOT ARBO ... 0.0 0.0 0.0 \n", + "3 Semanal Não BOT ARBO ... 0.0 0.0 0.0 \n", + "4 Semanal Não BOT ARBO ... 0.0 0.0 0.0 \n", "\n", - " C202417 C202501 C202502 C202503 C202504 C202505 C202506 C202507 \n", - "0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + " C202501 C202502 C202503 C202504 C202505 C202506 C202507 \n", + "0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", "[5 rows x 91 columns]" ] }, - "execution_count": 265, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -4099,34 +3159,34 @@ }, { "cell_type": "code", - "execution_count": 266, + "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " '202412', '202413', '202414', '202415', '202416', '202417', '202501',\n", - " '202502', '202503', '202504', '202505', '202506', '202507', '202508',\n", - " '202509', '202510', '202511', '202512', 'Ciclo_y', 'INICIO CICLO',\n", - " 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'chave sku2', 'chave sku1',\n", - " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", - " 'PRODUTO', '202416', 'C202401', 'C202402', 'C202403', 'C202404',\n", - " 'C202405', 'C202406', 'C202407', 'C202408', 'C202409', 'C202410',\n", - " 'C202411', 'C202412', 'C202413', 'C202414', 'C202415', 'C202416',\n", - " 'C202417', 'C202501', 'C202502', 'C202503', 'C202504', 'C202505',\n", - " 'C202506', 'C202507'],\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'Ciclo_y',\n", + " 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio',\n", + " 'Descrição_y', 'chave sku2', 'chave sku1', 'PRECO DE COMPRA',\n", + " 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG', 'PRODUTO', 'C202401',\n", + " 'C202402', 'C202403', 'C202404', 'C202405', 'C202406', 'C202407',\n", + " 'C202408', 'C202409', 'C202410', 'C202411', 'C202412', 'C202413',\n", + " 'C202414', 'C202415', 'C202416', 'C202417', 'C202501', 'C202502',\n", + " 'C202503', 'C202504', 'C202505', 'C202506', 'C202507'],\n", " dtype='object')" ] }, - "execution_count": 266, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } @@ -4137,7 +3197,7 @@ }, { "cell_type": "code", - "execution_count": 267, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ @@ -4160,7 +3220,41 @@ }, { "cell_type": "code", - "execution_count": 268, + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", + " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", + " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", + " 'Percentual de desconto consumidor', 'Ação revendedor',\n", + " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'Ciclo_y',\n", + " 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio',\n", + " 'Descrição_y', 'chave sku2', 'chave sku1', 'PRECO DE COMPRA',\n", + " 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG', 'PRODUTO'],\n", + " dtype='object')" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 75, "metadata": {}, "outputs": [ { @@ -4192,39 +3286,6 @@ "202506 C202506\n", "202507 C202507\n" ] - }, - { - "data": { - "text/plain": [ - "['C202401',\n", - " 'C202402',\n", - " 'C202403',\n", - " 'C202404',\n", - " 'C202405',\n", - " 'C202406',\n", - " 'C202407',\n", - " 'C202408',\n", - " 'C202409',\n", - " 'C202410',\n", - " 'C202411',\n", - " 'C202412',\n", - " 'C202413',\n", - " 'C202414',\n", - " 'C202415',\n", - " 'C202416',\n", - " 'C202417',\n", - " 'C202501',\n", - " 'C202502',\n", - " 'C202503',\n", - " 'C202504',\n", - " 'C202505',\n", - " 'C202506',\n", - " 'C202507']" - ] - }, - "execution_count": 268, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ @@ -4233,13 +3294,12 @@ "for col_c in colunas_ciclo_c:\n", " sufixo = col_c[1:] # Remove o 'C' do início, ex: 'C202407' -> '202407'\n", " col_hist = col_c\n", - " print(sufixo,col_c)\n", - "colunas_ciclo_c" + " print(sufixo,col_c)\n" ] }, { "cell_type": "code", - "execution_count": 269, + "execution_count": 76, "metadata": {}, "outputs": [], "source": [ @@ -4248,30 +3308,30 @@ }, { "cell_type": "code", - "execution_count": 270, + "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " '202412', '202413', '202414', '202415', '202416', '202417', '202501',\n", - " '202502', '202503', '202504', '202505', '202506', '202507', '202508',\n", - " '202509', '202510', '202511', '202512', 'INICIO CICLO', 'FIM CICLO',\n", - " 'DURAÇÃO', 'dias_ate_inicio', 'chave sku2', 'chave sku1',\n", - " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", - " 'PRODUTO', '202416'],\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'INICIO CICLO',\n", + " 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'Descrição_y', 'chave sku2',\n", + " 'chave sku1', 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO',\n", + " 'PDV GINSENG', 'PRODUTO'],\n", " dtype='object')" ] }, - "execution_count": 270, + "execution_count": 77, "metadata": {}, "output_type": "execute_result" } @@ -4282,16 +3342,16 @@ }, { "cell_type": "code", - "execution_count": 271, + "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(49398, 66)" + "(34265, 66)" ] }, - "execution_count": 271, + "execution_count": 78, "metadata": {}, "output_type": "execute_result" } @@ -4303,7 +3363,7 @@ }, { "cell_type": "code", - "execution_count": 272, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ @@ -4312,7 +3372,7 @@ }, { "cell_type": "code", - "execution_count": 273, + "execution_count": 80, "metadata": {}, "outputs": [], "source": [ @@ -4321,7 +3381,7 @@ }, { "cell_type": "code", - "execution_count": 274, + "execution_count": 81, "metadata": {}, "outputs": [ { @@ -4333,7 +3393,7 @@ " dtype='object')" ] }, - "execution_count": 274, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } @@ -4344,7 +3404,41 @@ }, { "cell_type": "code", - "execution_count": 275, + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", + " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", + " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", + " 'Percentual de desconto consumidor', 'Ação revendedor',\n", + " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'INICIO CICLO',\n", + " 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'Descrição_y', 'chave sku2',\n", + " 'chave sku1', 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO',\n", + " 'PDV GINSENG', 'PRODUTO', 'chave'],\n", + " dtype='object')" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 83, "metadata": {}, "outputs": [], "source": [ @@ -4357,7 +3451,7 @@ }, { "cell_type": "code", - "execution_count": 276, + "execution_count": 84, "metadata": {}, "outputs": [], "source": [ @@ -4368,7 +3462,7 @@ }, { "cell_type": "code", - "execution_count": 277, + "execution_count": 85, "metadata": {}, "outputs": [ { @@ -4377,7 +3471,7 @@ "Index(['202413', '202414', '202415', '202416', '202417', '202501', '202502'], dtype='object')" ] }, - "execution_count": 277, + "execution_count": 85, "metadata": {}, "output_type": "execute_result" } @@ -4388,31 +3482,31 @@ }, { "cell_type": "code", - "execution_count": 278, + "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " '202412', '202413', '202414', '202415', '202416', '202417', '202501',\n", - " '202502', '202503', '202504', '202505', '202506', '202507', '202508',\n", - " '202509', '202510', '202511', '202512', 'INICIO CICLO', 'FIM CICLO',\n", - " 'DURAÇÃO', 'dias_ate_inicio', 'chave sku2', 'chave sku1',\n", - " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", - " 'PRODUTO', '202416', 'chave', 'PICO DE VENDAS 2024',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'INICIO CICLO',\n", + " 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'Descrição_y', 'chave sku2',\n", + " 'chave sku1', 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO',\n", + " 'PDV GINSENG', 'PRODUTO', 'chave', 'PICO DE VENDAS 2024',\n", " 'Pico Vendas Ultimos 6 ciclos'],\n", " dtype='object')" ] }, - "execution_count": 278, + "execution_count": 86, "metadata": {}, "output_type": "execute_result" } @@ -4423,31 +3517,31 @@ }, { "cell_type": "code", - "execution_count": 279, + "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição', 'IAF',\n", + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", " 'Percentual de desconto consumidor', 'Ação revendedor',\n", " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", - " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'curva', 'categoria',\n", - " 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", - " 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço', 'SKU_FINAL', 'DESCRICAO',\n", - " '202412', '202413', '202414', '202415', '202416', '202417', '202501',\n", - " '202502', '202503', '202504', '202505', '202506', '202507', '202508',\n", - " '202509', '202510', '202511', '202512', 'INICIO CICLO', 'FIM CICLO',\n", - " 'DURAÇÃO', 'dias_ate_inicio', 'chave sku2', 'chave sku1',\n", - " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", - " 'PRODUTO', '202416', 'chave', 'PICO DE VENDAS 2024',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202413', '202414', '202415', '202416', '202417',\n", + " '202501', '202502', '202503', '202504', '202505', '202506', '202507',\n", + " '202508', '202509', '202510', '202511', '202512', 'INICIO CICLO',\n", + " 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio', 'Descrição_y', 'chave sku2',\n", + " 'chave sku1', 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO',\n", + " 'PDV GINSENG', 'PRODUTO', 'chave', 'PICO DE VENDAS 2024',\n", " 'Pico Vendas Ultimos 6 ciclos'],\n", " dtype='object')" ] }, - "execution_count": 279, + "execution_count": 87, "metadata": {}, "output_type": "execute_result" } @@ -4458,7 +3552,7 @@ }, { "cell_type": "code", - "execution_count": 280, + "execution_count": 88, "metadata": {}, "outputs": [ { @@ -4470,7 +3564,7 @@ " dtype='object')" ] }, - "execution_count": 280, + "execution_count": 88, "metadata": {}, "output_type": "execute_result" } @@ -4481,7 +3575,7 @@ }, { "cell_type": "code", - "execution_count": 281, + "execution_count": 89, "metadata": {}, "outputs": [ { @@ -4509,20 +3603,20 @@ " Região\n", " Canal\n", " Código\n", - " Descrição\n", + " Descrição_x\n", " IAF\n", " Tipo de pedido\n", " Foco\n", " Unidade de negócio\n", " Marca\n", " ...\n", + " chave sku2\n", " chave sku1\n", " PRECO DE COMPRA\n", " PRECO DE VENDA\n", " UFPRODUTO\n", " PDV GINSENG\n", " PRODUTO\n", - " 202416\n", " chave\n", " PICO DE VENDAS 2024\n", " Pico Vendas Ultimos 6 ciclos\n", @@ -4531,123 +3625,123 @@ " \n", " \n", " 0\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " AL28813\n", - " 58.17\n", - " 224.9\n", - " AL48141\n", + " AL50052\n", + " AL50052\n", + " 11.72\n", + " 37.9\n", + " AL50052\n", " 0.0\n", " 0\n", + " 1252250052\n", + " 2.0\n", " 0.0\n", - " 1252248141\n", - " 20.0\n", - " 7.0\n", " \n", " \n", " 1\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " AL28813\n", - " 58.17\n", - " 224.9\n", - " AL48141\n", + " AL50052\n", + " AL50052\n", + " 11.72\n", + " 37.9\n", + " AL50052\n", " 0.0\n", " 0\n", + " 1281750052\n", + " 5.0\n", " 0.0\n", - " 1281748141\n", - " 45.0\n", - " 18.0\n", " \n", " \n", " 2\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " AL28813\n", - " 58.17\n", - " 224.9\n", - " AL48141\n", + " AL50052\n", + " AL50052\n", + " 11.72\n", + " 37.9\n", + " AL50052\n", " 0.0\n", " 0\n", - " 0.0\n", - " 1281848141\n", - " 11.0\n", - " 3.0\n", + " 1281850052\n", + " 1.0\n", + " 1.0\n", " \n", " \n", " 3\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " AL28813\n", - " 58.17\n", - " 224.9\n", - " AL48141\n", + " AL50052\n", + " AL50052\n", + " 11.72\n", + " 37.9\n", + " AL50052\n", " 0.0\n", " 0\n", + " 1282050052\n", + " 1.0\n", " 0.0\n", - " 1282048141\n", - " 8.0\n", - " 3.0\n", " \n", " \n", " 4\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " AL28813\n", - " 58.17\n", - " 224.9\n", - " AL48141\n", + " AL50052\n", + " AL50052\n", + " 11.72\n", + " 37.9\n", + " AL50052\n", " 0.0\n", " 0\n", + " 1282350052\n", + " 1.0\n", " 0.0\n", - " 1282348141\n", - " 11.0\n", - " 2.0\n", " \n", " \n", "\n", @@ -4655,38 +3749,38 @@ "" ], "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "0 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "1 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "2 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "3 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "4 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", + " Ciclo_x Região Canal Código Descrição_x IAF \\\n", + "0 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "1 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "2 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "3 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "4 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... chave sku1 \\\n", - "0 0.0 0.0 0.0 BOTI ... AL28813 \n", - "1 0.0 0.0 0.0 BOTI ... AL28813 \n", - "2 0.0 0.0 0.0 BOTI ... AL28813 \n", - "3 0.0 0.0 0.0 BOTI ... AL28813 \n", - "4 0.0 0.0 0.0 BOTI ... AL28813 \n", + " Tipo de pedido Foco Unidade de negócio Marca ... chave sku2 chave sku1 \\\n", + "0 Semanal Não BOT ARBO ... AL50052 AL50052 \n", + "1 Semanal Não BOT ARBO ... AL50052 AL50052 \n", + "2 Semanal Não BOT ARBO ... AL50052 AL50052 \n", + "3 Semanal Não BOT ARBO ... AL50052 AL50052 \n", + "4 Semanal Não BOT ARBO ... AL50052 AL50052 \n", "\n", - " PRECO DE COMPRA PRECO DE VENDA UFPRODUTO PDV GINSENG PRODUTO 202416 \\\n", - "0 58.17 224.9 AL48141 0.0 0 0.0 \n", - "1 58.17 224.9 AL48141 0.0 0 0.0 \n", - "2 58.17 224.9 AL48141 0.0 0 0.0 \n", - "3 58.17 224.9 AL48141 0.0 0 0.0 \n", - "4 58.17 224.9 AL48141 0.0 0 0.0 \n", + " PRECO DE COMPRA PRECO DE VENDA UFPRODUTO PDV GINSENG PRODUTO chave \\\n", + "0 11.72 37.9 AL50052 0.0 0 1252250052 \n", + "1 11.72 37.9 AL50052 0.0 0 1281750052 \n", + "2 11.72 37.9 AL50052 0.0 0 1281850052 \n", + "3 11.72 37.9 AL50052 0.0 0 1282050052 \n", + "4 11.72 37.9 AL50052 0.0 0 1282350052 \n", "\n", - " chave PICO DE VENDAS 2024 Pico Vendas Ultimos 6 ciclos \n", - "0 1252248141 20.0 7.0 \n", - "1 1281748141 45.0 18.0 \n", - "2 1281848141 11.0 3.0 \n", - "3 1282048141 8.0 3.0 \n", - "4 1282348141 11.0 2.0 \n", + " PICO DE VENDAS 2024 Pico Vendas Ultimos 6 ciclos \n", + "0 2.0 0.0 \n", + "1 5.0 0.0 \n", + "2 1.0 1.0 \n", + "3 1.0 0.0 \n", + "4 1.0 0.0 \n", "\n", "[5 rows x 69 columns]" ] }, - "execution_count": 281, + "execution_count": 89, "metadata": {}, "output_type": "execute_result" } @@ -4697,22 +3791,20 @@ }, { "cell_type": "code", - "execution_count": 282, + "execution_count": 90, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "\"# Define as colunas mensais\\ncolunas_mensais = df_final.columns[36:54]\\n\\n# Função de cálculo por grupo\\ndef calcular_crescimento(grupo):\\n soma_mensal = grupo[colunas_mensais].sum()\\n variacao_mensal = soma_mensal.pct_change().dropna()\\n variacao_mensal = variacao_mensal[np.isfinite(variacao_mensal)]\\n\\n if len(variacao_mensal) == 0:\\n return pd.Series({'CRESCIMENTO': np.nan})\\n\\n media = variacao_mensal.mean()\\n desvio = variacao_mensal.std()\\n\\n limite_sup = media + 2 * desvio\\n limite_inf = media - 2 * desvio\\n\\n variacoes_filtradas = variacao_mensal[variacao_mensal.between(limite_inf, limite_sup)]\\n crescimento = round(variacoes_filtradas.mean(), 4)\\n return pd.Series({'CRESCIMENTO': crescimento})\\n\\n# Aplica a função por PDV\\ncrescimento_por_pdv = (\\n df_final\\n .groupby('PDV')\\n .apply(calcular_crescimento) # retorna índice com PDV\\n .reset_index(level=0) # reseta só o nível PDV\\n)\\n\\n# Merge do resultado de volta no dataframe original\\ndf_final = df_final.merge(crescimento_por_pdv, on='PDV', how='left')\"" - ] - }, - "execution_count": 282, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_2580\\3082173574.py:27: DeprecationWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.\n", + " .apply(calcular_crescimento) # retorna índice com PDV\n" + ] } ], "source": [ - "'''# Define as colunas mensais\n", + "# Define as colunas mensais\n", "colunas_mensais = df_final.columns[36:54]\n", "\n", "# Função de cálculo por grupo\n", @@ -4743,21 +3835,21 @@ ")\n", "\n", "# Merge do resultado de volta no dataframe original\n", - "df_final = df_final.merge(crescimento_por_pdv, on='PDV', how='left')'''\n" + "df_final = df_final.merge(crescimento_por_pdv, on='PDV', how='left')\n" ] }, { "cell_type": "code", - "execution_count": 283, + "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "np.float64(0.1171)" + "np.float64(0.0857)" ] }, - "execution_count": 283, + "execution_count": 91, "metadata": {}, "output_type": "execute_result" } @@ -4798,7 +3890,7 @@ }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 92, "metadata": {}, "outputs": [ { @@ -4810,7 +3902,7 @@ " dtype='object')" ] }, - "execution_count": 284, + "execution_count": 92, "metadata": {}, "output_type": "execute_result" } @@ -4821,7 +3913,7 @@ }, { "cell_type": "code", - "execution_count": 285, + "execution_count": 93, "metadata": {}, "outputs": [ { @@ -4856,35 +3948,35 @@ " 0\n", " TODOS\n", " AL\n", - " 1004\n", + " 1428\n", " 0.0\n", " \n", " \n", " 1\n", " TODOS\n", " AL\n", - " 1788\n", + " 1634\n", " 0.0\n", " \n", " \n", " 2\n", " TODOS\n", " AL\n", - " 2094\n", + " 1640\n", " 0.0\n", " \n", " \n", " 3\n", " TODOS\n", " AL\n", - " 2100\n", + " 1650\n", " 0.0\n", " \n", " \n", " 4\n", " TODOS\n", " AL\n", - " 2150\n", + " 1806\n", " 0.0\n", " \n", " \n", @@ -4895,63 +3987,63 @@ " ...\n", " \n", " \n", - " 6165\n", + " 4445\n", " VD\n", " VDC\n", - " 87925\n", + " 88471\n", " 0.0\n", " \n", " \n", - " 6166\n", + " 4446\n", " VD\n", " VDC\n", - " 87926\n", + " 88563\n", " 0.0\n", " \n", " \n", - " 6167\n", + " 4447\n", " VD\n", " VDC\n", - " 87927\n", + " 88730\n", " 0.0\n", " \n", " \n", - " 6168\n", + " 4448\n", " VD\n", " VDC\n", - " 87959\n", + " 89421\n", " 0.0\n", " \n", " \n", - " 6169\n", + " 4449\n", " VD\n", " VDC\n", - " 87960\n", + " 89495\n", " 0.0\n", " \n", " \n", "\n", - "

6170 rows × 4 columns

\n", + "

4450 rows × 4 columns

\n", "" ], "text/plain": [ " CANAL UF Código med_por_canal\n", - "0 TODOS AL 1004 0.0\n", - "1 TODOS AL 1788 0.0\n", - "2 TODOS AL 2094 0.0\n", - "3 TODOS AL 2100 0.0\n", - "4 TODOS AL 2150 0.0\n", + "0 TODOS AL 1428 0.0\n", + "1 TODOS AL 1634 0.0\n", + "2 TODOS AL 1640 0.0\n", + "3 TODOS AL 1650 0.0\n", + "4 TODOS AL 1806 0.0\n", "... ... ... ... ...\n", - "6165 VD VDC 87925 0.0\n", - "6166 VD VDC 87926 0.0\n", - "6167 VD VDC 87927 0.0\n", - "6168 VD VDC 87959 0.0\n", - "6169 VD VDC 87960 0.0\n", + "4445 VD VDC 88471 0.0\n", + "4446 VD VDC 88563 0.0\n", + "4447 VD VDC 88730 0.0\n", + "4448 VD VDC 89421 0.0\n", + "4449 VD VDC 89495 0.0\n", "\n", - "[6170 rows x 4 columns]" + "[4450 rows x 4 columns]" ] }, - "execution_count": 285, + "execution_count": 93, "metadata": {}, "output_type": "execute_result" } @@ -4973,57 +4065,68 @@ }, { "cell_type": "code", - "execution_count": 286, + "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'202414'" + "'202415'" ] }, - "execution_count": 286, + "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final.columns[38]" + "df_final.columns[39]" ] }, { "cell_type": "code", - "execution_count": 287, + "execution_count": 95, "metadata": {}, "outputs": [], "source": [ - "mesmo_ciclo_ano_passado = df_final.columns[38]\n", - "ciclo_ano_passado = df_final.columns[38]\n", + "mesmo_ciclo_ano_passado = df_final.columns[39]\n", + "ciclo_ano_passado = df_final.columns[39]\n", "df_final[ciclo_ano_passado] = df_final[mesmo_ciclo_ano_passado]" ] }, { "cell_type": "code", - "execution_count": 288, - "metadata": {}, - "outputs": [], - "source": [ - "df_final['CRESCIMENTO_GERAL'] = 0.2\n", - "df_final['CRESCIMENTO'] = 0.2" - ] - }, - { - "cell_type": "code", - "execution_count": 289, + "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(49398, 77)" + "\"df_final['CRESCIMENTO_GERAL'] = 0.2\\ndf_final['CRESCIMENTO'] = 0.2\"" ] }, - "execution_count": 289, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'''df_final['CRESCIMENTO_GERAL'] = 0.2\n", + "df_final['CRESCIMENTO'] = 0.2'''" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(34265, 77)" + ] + }, + "execution_count": 97, "metadata": {}, "output_type": "execute_result" } @@ -5048,7 +4151,39 @@ }, { "cell_type": "code", - "execution_count": 290, + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PDV\n", + "12522 445\n", + "12817 445\n", + "12818 445\n", + "12820 445\n", + "12823 445\n", + " ... \n", + "24257 445\n", + "24268 445\n", + "24269 445\n", + "24293 445\n", + "23813 445\n", + "Name: count, Length: 77, dtype: Int64" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final['PDV'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 99, "metadata": {}, "outputs": [ { @@ -5076,7 +4211,7 @@ " Região\n", " Canal\n", " Código\n", - " Descrição\n", + " Descrição_x\n", " IAF\n", " Tipo de pedido\n", " Foco\n", @@ -5085,11 +4220,11 @@ " ...\n", " PICO DE VENDAS 2024\n", " Pico Vendas Ultimos 6 ciclos\n", + " CRESCIMENTO\n", " CRESCIMENTO_GERAL\n", " MEDIANA DO HISTÓRICO\n", " MEDIA DO HISTÓRICO\n", " med_por_canal\n", - " CRESCIMENTO\n", " CRESCIMENTO_FINAL\n", " MEDIANA DO HISTÓRICO2\n", " PV GINSENG\n", @@ -5098,123 +4233,123 @@ " \n", " \n", " 0\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " 20.0\n", - " 7.0\n", + " 2.0\n", + " 0.0\n", + " 0.0762\n", " 0.2\n", - " 3.0\n", - " 5.000000\n", - " 8.0\n", - " 0.2\n", - " 0.4\n", - " 3.0\n", - " 13.0\n", + " 0.0\n", + " 0.111111\n", + " 0.0\n", + " 0.2762\n", + " 0.111111\n", + " 0.0\n", " \n", " \n", " 1\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " 45.0\n", - " 18.0\n", + " 5.0\n", + " 0.0\n", + " 0.0867\n", " 0.2\n", - " 8.0\n", - " 12.789474\n", - " 8.0\n", - " 0.2\n", - " 0.4\n", - " 8.0\n", - " 59.0\n", + " 0.0\n", + " 0.555556\n", + " 0.0\n", + " 0.2867\n", + " 0.555556\n", + " 1.0\n", " \n", " \n", " 2\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " 11.0\n", - " 3.0\n", + " 1.0\n", + " 1.0\n", + " 0.1065\n", " 0.2\n", - " 2.0\n", - " 2.578947\n", - " 8.0\n", - " 0.2\n", - " 0.4\n", - " 2.0\n", - " 7.0\n", + " 0.0\n", + " 0.055556\n", + " 0.0\n", + " 0.3065\n", + " 0.055556\n", + " 0.0\n", " \n", " \n", " 3\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " 8.0\n", - " 3.0\n", - " 0.2\n", " 1.0\n", - " 2.421053\n", - " 8.0\n", + " 0.0\n", + " 0.0882\n", " 0.2\n", - " 0.4\n", - " 1.0\n", - " 8.0\n", + " 0.0\n", + " 0.055556\n", + " 0.0\n", + " 0.2882\n", + " 0.055556\n", + " 0.0\n", " \n", " \n", " 4\n", - " C202514\n", + " 202515\n", " NNE\n", - " VD\n", - " 48141\n", - " ACCORDES DES COL 80ml V5\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " BOTI\n", + " Loja\n", + " 50052\n", + " ARBO LOC DES HID CPO 75ml\n", + " Não\n", + " Semanal\n", + " Não\n", + " BOT\n", + " ARBO\n", " ...\n", - " 11.0\n", - " 2.0\n", - " 0.2\n", " 1.0\n", - " 2.473684\n", - " 8.0\n", + " 0.0\n", + " 0.0745\n", " 0.2\n", - " 0.4\n", - " 1.0\n", - " 8.0\n", + " 0.0\n", + " 0.111111\n", + " 0.0\n", + " 0.2745\n", + " 0.111111\n", + " 0.0\n", " \n", " \n", "\n", @@ -5222,45 +4357,45 @@ "" ], "text/plain": [ - " Ciclo_x Região Canal Código Descrição IAF \\\n", - "0 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "1 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "2 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "3 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", - "4 C202514 NNE VD 48141 ACCORDES DES COL 80ml V5 0.0 \n", + " Ciclo_x Região Canal Código Descrição_x IAF \\\n", + "0 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "1 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "2 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "3 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "4 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", "\n", - " Tipo de pedido Foco Unidade de negócio Marca ... PICO DE VENDAS 2024 \\\n", - "0 0.0 0.0 0.0 BOTI ... 20.0 \n", - "1 0.0 0.0 0.0 BOTI ... 45.0 \n", - "2 0.0 0.0 0.0 BOTI ... 11.0 \n", - "3 0.0 0.0 0.0 BOTI ... 8.0 \n", - "4 0.0 0.0 0.0 BOTI ... 11.0 \n", + " Tipo de pedido Foco Unidade de negócio Marca ... PICO DE VENDAS 2024 \\\n", + "0 Semanal Não BOT ARBO ... 2.0 \n", + "1 Semanal Não BOT ARBO ... 5.0 \n", + "2 Semanal Não BOT ARBO ... 1.0 \n", + "3 Semanal Não BOT ARBO ... 1.0 \n", + "4 Semanal Não BOT ARBO ... 1.0 \n", "\n", - " Pico Vendas Ultimos 6 ciclos CRESCIMENTO_GERAL MEDIANA DO HISTÓRICO \\\n", - "0 7.0 0.2 3.0 \n", - "1 18.0 0.2 8.0 \n", - "2 3.0 0.2 2.0 \n", - "3 3.0 0.2 1.0 \n", - "4 2.0 0.2 1.0 \n", + " Pico Vendas Ultimos 6 ciclos CRESCIMENTO CRESCIMENTO_GERAL \\\n", + "0 0.0 0.0762 0.2 \n", + "1 0.0 0.0867 0.2 \n", + "2 1.0 0.1065 0.2 \n", + "3 0.0 0.0882 0.2 \n", + "4 0.0 0.0745 0.2 \n", "\n", - " MEDIA DO HISTÓRICO med_por_canal CRESCIMENTO CRESCIMENTO_FINAL \\\n", - "0 5.000000 8.0 0.2 0.4 \n", - "1 12.789474 8.0 0.2 0.4 \n", - "2 2.578947 8.0 0.2 0.4 \n", - "3 2.421053 8.0 0.2 0.4 \n", - "4 2.473684 8.0 0.2 0.4 \n", + " MEDIANA DO HISTÓRICO MEDIA DO HISTÓRICO med_por_canal CRESCIMENTO_FINAL \\\n", + "0 0.0 0.111111 0.0 0.2762 \n", + "1 0.0 0.555556 0.0 0.2867 \n", + "2 0.0 0.055556 0.0 0.3065 \n", + "3 0.0 0.055556 0.0 0.2882 \n", + "4 0.0 0.111111 0.0 0.2745 \n", "\n", " MEDIANA DO HISTÓRICO2 PV GINSENG \n", - "0 3.0 13.0 \n", - "1 8.0 59.0 \n", - "2 2.0 7.0 \n", - "3 1.0 8.0 \n", - "4 1.0 8.0 \n", + "0 0.111111 0.0 \n", + "1 0.555556 1.0 \n", + "2 0.055556 0.0 \n", + "3 0.055556 0.0 \n", + "4 0.111111 0.0 \n", "\n", "[5 rows x 77 columns]" ] }, - "execution_count": 290, + "execution_count": 99, "metadata": {}, "output_type": "execute_result" } @@ -5271,7 +4406,7 @@ }, { "cell_type": "code", - "execution_count": 291, + "execution_count": 100, "metadata": {}, "outputs": [], "source": [ @@ -5280,7 +4415,7 @@ }, { "cell_type": "code", - "execution_count": 292, + "execution_count": 101, "metadata": {}, "outputs": [ { @@ -5289,7 +4424,7 @@ "Index(['202414', '202415', '202416', '202417', '202501', '202502', '202503'], dtype='object')" ] }, - "execution_count": 292, + "execution_count": 101, "metadata": {}, "output_type": "execute_result" } @@ -5300,7 +4435,7 @@ }, { "cell_type": "code", - "execution_count": 293, + "execution_count": 102, "metadata": {}, "outputs": [ { @@ -5309,7 +4444,7 @@ "Index(['202508', '202509', '202510', '202511', '202512'], dtype='object')" ] }, - "execution_count": 293, + "execution_count": 102, "metadata": {}, "output_type": "execute_result" } @@ -5320,7 +4455,7 @@ }, { "cell_type": "code", - "execution_count": 294, + "execution_count": 103, "metadata": {}, "outputs": [], "source": [ @@ -5329,37 +4464,39 @@ }, { "cell_type": "code", - "execution_count": 295, + "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'202413'" + "Index(['202416', '202417', '202501', '202502', '202503', '202504', '202505',\n", + " '202506', '202507'],\n", + " dtype='object')" ] }, - "execution_count": 295, + "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final.columns[37]" + "df_final.columns[40:49]" ] }, { "cell_type": "code", - "execution_count": 296, + "execution_count": 105, "metadata": {}, "outputs": [], "source": [ - "df_final.drop(columns=df_final.columns[39:49], inplace=True)\n", - "df_final.drop(columns=df_final.columns[37], inplace=True)" + "df_final.drop(columns=df_final.columns[40:49], inplace=True)\n", + "df_final.drop(columns=df_final.columns[37:39], inplace=True)" ] }, { "cell_type": "code", - "execution_count": 297, + "execution_count": 106, "metadata": {}, "outputs": [], "source": [ @@ -5368,37 +4505,39 @@ }, { "cell_type": "code", - "execution_count": 298, + "execution_count": 107, "metadata": {}, "outputs": [], "source": [ - "df_final['COBERTURA ATUAL'] = df_final['COBERTURA ATUAL'].replace([np.inf, -np.inf], 0)" + "df_final['COBERTURA ATUAL'] = df_final['COBERTURA ATUAL'].replace([np.inf, -np.inf], 0)\n", + "\n", + "df_final['COBERTURA ATUAL'] = round(df_final['COBERTURA ATUAL'],0)" ] }, { "cell_type": "code", - "execution_count": 299, + "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "COBERTURA ATUAL\n", - "0.000000 10548\n", - "100.000000 1253\n", - "50.000000 806\n", - "33.333333 689\n", - "200.000000 605\n", - " ... \n", - "338.235294 1\n", - "622.727273 1\n", - "104.347826 1\n", - "377.777778 1\n", - "2.127660 1\n", - "Name: count, Length: 2608, dtype: int64" + "0.0 6787\n", + "100.0 699\n", + "50.0 447\n", + "40.0 375\n", + "20.0 342\n", + " ... \n", + "245.0 1\n", + "778.0 1\n", + "811.0 1\n", + "1967.0 1\n", + "644.0 1\n", + "Name: count, Length: 641, dtype: int64" ] }, - "execution_count": 299, + "execution_count": 108, "metadata": {}, "output_type": "execute_result" } @@ -5409,7 +4548,7 @@ }, { "cell_type": "code", - "execution_count": 300, + "execution_count": 109, "metadata": {}, "outputs": [], "source": [ @@ -5420,11 +4559,43 @@ }, { "cell_type": "code", - "execution_count": 301, + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PDV\n", + "12522 445\n", + "12817 445\n", + "12818 445\n", + "12820 445\n", + "12823 445\n", + " ... \n", + "24257 445\n", + "24268 445\n", + "24269 445\n", + "24293 445\n", + "23813 445\n", + "Name: count, Length: 77, dtype: Int64" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final['PDV'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 111, "metadata": {}, "outputs": [], "source": [ - "colunas_chave = [c for c in df_final.columns if c not in [\"DDV PREVISTO\", \"COBERTURA ATUAL\"]]\n", + "r'''colunas_chave = [c for c in df_final.columns if c not in [\"DDV PREVISTO\", \"COBERTURA ATUAL\"]]\n", "\n", "\n", "# encontrar índice da linha com maior DDV e depois maior COBERTURA\n", @@ -5437,12 +4608,49 @@ "\n", "\n", "# reordenar colunas como no original\n", - "df_final_dedup = idx[df_final.columns.tolist()].reset_index(drop=True)" + "df_final_dedup = idx[df_final.columns.tolist()].reset_index(drop=True)'''\n", + "\n", + "df_final_dedup = df_final" ] }, { "cell_type": "code", - "execution_count": 302, + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", + " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'Marca', 'Categoria',\n", + " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", + " 'Percentual de desconto consumidor', 'Ação revendedor',\n", + " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " 'SKU_FINAL', '202412', '202415', 'C-4', 'C-3', 'C-2', 'C-1', 'Atual',\n", + " 'INICIO CICLO', 'FIM CICLO', 'DURAÇÃO', 'dias_ate_inicio',\n", + " 'Descrição_y', 'chave sku2', 'chave sku1', 'PRECO DE COMPRA',\n", + " 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG', 'PRODUTO', 'chave',\n", + " 'PICO DE VENDAS 2024', 'Pico Vendas Ultimos 6 ciclos', 'CRESCIMENTO',\n", + " 'CRESCIMENTO_GERAL', 'MEDIANA DO HISTÓRICO', 'MEDIA DO HISTÓRICO',\n", + " 'med_por_canal', 'CRESCIMENTO_FINAL', 'PV GINSENG', 'COBERTURA ATUAL'],\n", + " dtype='object')" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 113, "metadata": {}, "outputs": [ { @@ -5455,7 +4663,7 @@ " '202408')" ] }, - "execution_count": 302, + "execution_count": 113, "metadata": {}, "output_type": "execute_result" } @@ -5483,7 +4691,404 @@ }, { "cell_type": "code", - "execution_count": 303, + "execution_count": 114, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Ciclo_xRegiãoCanalCódigoDescrição_xIAFTipo de pedidoFocoUnidade de negócioMarca...PICO DE VENDAS 2024Pico Vendas Ultimos 6 ciclosCRESCIMENTOCRESCIMENTO_GERALMEDIANA DO HISTÓRICOMEDIA DO HISTÓRICOmed_por_canalCRESCIMENTO_FINALPV GINSENGCOBERTURA ATUAL
39202515NNELoja50052ARBO LOC DES HID CPO 75mlNãoSemanalNãoBOTARBO...0.00.0NaN0.20.00.00.0NaNNaNNaN
116202515NNETodos57640ARBO NECESSAIRE PESNãoSemanalNãoBOTARBO...0.00.0NaN0.20.00.00.0NaNNaNNaN
193202515NNETodos51803BOTI BABY COND V2 400mlNãoSemanalNãoBOTBOTI BABY...0.00.0NaN0.20.00.03.0NaNNaNNaN
270202515NNETodos52023BOTI BABY LOC HID CPO 400mlNãoSemanalNãoBOTBOTI BABY...0.00.0NaN0.20.00.03.0NaNNaNNaN
347202515NNETodos52025BOTI BABY SAB LIQ GLIC V2 400mlNãoSemanalNãoBOTBOTI BABY...0.00.0NaN0.20.00.08.0NaNNaNNaN
..................................................................
33919202515NNEVD36826REF MAKE B PO COMP FAC HYAL 70 8gNãoSemanalNãoBOTMAKE B....0.00.0NaN0.20.00.00.0NaNNaNNaN
33996202515NNEVD46568SOPHIE BOLSA NYLONNãoSemanalNãoBOTSOPHIE...0.00.0NaN0.20.00.01.0NaNNaNNaN
34073202515NNEVD47949THE BLEND EDP 100ml V2NãoSemanalNãoBOTTHE BLEND...0.00.0NaN0.20.00.017.0NaNNaNNaN
34150202515NNEVD49038ZAAD BALM POS BARB 110g V4NãoSemanalNãoBOTZAAD...0.00.0NaN0.20.00.00.0NaNNaNNaN
34227202515NNEVD48368ZAAD ESPUM P/ BARB 200ml V4NãoSemanalNãoBOTZAAD...0.00.0NaN0.20.00.01.0NaNNaNNaN
\n", + "

445 rows × 66 columns

\n", + "
" + ], + "text/plain": [ + " Ciclo_x Região Canal Código Descrição_x IAF \\\n", + "39 202515 NNE Loja 50052 ARBO LOC DES HID CPO 75ml Não \n", + "116 202515 NNE Todos 57640 ARBO NECESSAIRE PES Não \n", + "193 202515 NNE Todos 51803 BOTI BABY COND V2 400ml Não \n", + "270 202515 NNE Todos 52023 BOTI BABY LOC HID CPO 400ml Não \n", + "347 202515 NNE Todos 52025 BOTI BABY SAB LIQ GLIC V2 400ml Não \n", + "... ... ... ... ... ... ... \n", + "33919 202515 NNE VD 36826 REF MAKE B PO COMP FAC HYAL 70 8g Não \n", + "33996 202515 NNE VD 46568 SOPHIE BOLSA NYLON Não \n", + "34073 202515 NNE VD 47949 THE BLEND EDP 100ml V2 Não \n", + "34150 202515 NNE VD 49038 ZAAD BALM POS BARB 110g V4 Não \n", + "34227 202515 NNE VD 48368 ZAAD ESPUM P/ BARB 200ml V4 Não \n", + "\n", + " Tipo de pedido Foco Unidade de negócio Marca ... \\\n", + "39 Semanal Não BOT ARBO ... \n", + "116 Semanal Não BOT ARBO ... \n", + "193 Semanal Não BOT BOTI BABY ... \n", + "270 Semanal Não BOT BOTI BABY ... \n", + "347 Semanal Não BOT BOTI BABY ... \n", + "... ... ... ... ... ... \n", + "33919 Semanal Não BOT MAKE B. ... \n", + "33996 Semanal Não BOT SOPHIE ... \n", + "34073 Semanal Não BOT THE BLEND ... \n", + "34150 Semanal Não BOT ZAAD ... \n", + "34227 Semanal Não BOT ZAAD ... \n", + "\n", + " PICO DE VENDAS 2024 Pico Vendas Ultimos 6 ciclos CRESCIMENTO \\\n", + "39 0.0 0.0 NaN \n", + "116 0.0 0.0 NaN \n", + "193 0.0 0.0 NaN \n", + "270 0.0 0.0 NaN \n", + "347 0.0 0.0 NaN \n", + "... ... ... ... \n", + "33919 0.0 0.0 NaN \n", + "33996 0.0 0.0 NaN \n", + "34073 0.0 0.0 NaN \n", + "34150 0.0 0.0 NaN \n", + "34227 0.0 0.0 NaN \n", + "\n", + " CRESCIMENTO_GERAL MEDIANA DO HISTÓRICO MEDIA DO HISTÓRICO med_por_canal \\\n", + "39 0.2 0.0 0.0 0.0 \n", + "116 0.2 0.0 0.0 0.0 \n", + "193 0.2 0.0 0.0 3.0 \n", + "270 0.2 0.0 0.0 3.0 \n", + "347 0.2 0.0 0.0 8.0 \n", + "... ... ... ... ... \n", + "33919 0.2 0.0 0.0 0.0 \n", + "33996 0.2 0.0 0.0 1.0 \n", + "34073 0.2 0.0 0.0 17.0 \n", + "34150 0.2 0.0 0.0 0.0 \n", + "34227 0.2 0.0 0.0 1.0 \n", + "\n", + " CRESCIMENTO_FINAL PV GINSENG COBERTURA ATUAL \n", + "39 NaN NaN NaN \n", + "116 NaN NaN NaN \n", + "193 NaN NaN NaN \n", + "270 NaN NaN NaN \n", + "347 NaN NaN NaN \n", + "... ... ... ... \n", + "33919 NaN NaN NaN \n", + "33996 NaN NaN NaN \n", + "34073 NaN NaN NaN \n", + "34150 NaN NaN NaN \n", + "34227 NaN NaN NaN \n", + "\n", + "[445 rows x 66 columns]" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final_dedup[df_final_dedup['PDV'] == 21007]" + ] + }, + { + "cell_type": "code", + "execution_count": 115, "metadata": {}, "outputs": [], "source": [ @@ -5493,7 +5098,7 @@ }, { "cell_type": "code", - "execution_count": 304, + "execution_count": 116, "metadata": {}, "outputs": [], "source": [ @@ -5504,7 +5109,7 @@ }, { "cell_type": "code", - "execution_count": 305, + "execution_count": 117, "metadata": {}, "outputs": [], "source": [ @@ -5513,7 +5118,7 @@ }, { "cell_type": "code", - "execution_count": 306, + "execution_count": 118, "metadata": {}, "outputs": [], "source": [ @@ -5526,7 +5131,7 @@ }, { "cell_type": "code", - "execution_count": 307, + "execution_count": 119, "metadata": {}, "outputs": [ { @@ -5535,7 +5140,7 @@ "np.int64(0)" ] }, - "execution_count": 307, + "execution_count": 119, "metadata": {}, "output_type": "execute_result" } @@ -5546,7 +5151,7 @@ }, { "cell_type": "code", - "execution_count": 308, + "execution_count": 120, "metadata": {}, "outputs": [], "source": [ @@ -5555,7 +5160,7 @@ }, { "cell_type": "code", - "execution_count": 309, + "execution_count": 121, "metadata": {}, "outputs": [], "source": [ @@ -5564,7 +5169,39 @@ }, { "cell_type": "code", - "execution_count": 310, + "execution_count": 122, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "PDV\n", + "12522 445\n", + "12817 445\n", + "12818 445\n", + "12820 445\n", + "12823 445\n", + " ... \n", + "24257 445\n", + "24268 445\n", + "24269 445\n", + "24293 445\n", + "23813 445\n", + "Name: count, Length: 77, dtype: Int64" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final_dedup['PDV'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 123, "metadata": {}, "outputs": [], "source": [ @@ -5573,7 +5210,7 @@ }, { "cell_type": "code", - "execution_count": 311, + "execution_count": 124, "metadata": {}, "outputs": [], "source": [ @@ -5582,7 +5219,7 @@ }, { "cell_type": "code", - "execution_count": 312, + "execution_count": 125, "metadata": {}, "outputs": [], "source": [ @@ -5591,16 +5228,16 @@ }, { "cell_type": "code", - "execution_count": 313, + "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'202414'" + "'202415'" ] }, - "execution_count": 313, + "execution_count": 126, "metadata": {}, "output_type": "execute_result" } @@ -5611,19 +5248,65 @@ }, { "cell_type": "code", - "execution_count": 314, + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Ciclo_x', 'Região', 'Canal', 'Código', 'Descrição_x', 'IAF',\n", + " 'Tipo de pedido', 'Foco', 'Unidade de negócio', 'LINHA', 'Categoria',\n", + " 'Tipo de promoção', 'Catálogo', 'Tipo de produto', 'Ação consumidor',\n", + " 'Percentual de desconto consumidor', 'Ação revendedor',\n", + " 'Percentual de desconto revendedor', 'MATCH', 'PDV', 'CANAL',\n", + " 'DESCRIÇÃO PDV', 'UF', 'ANALISTA', 'SUPERVISOR', 'SKU', 'curva',\n", + " 'categoria', 'proj_mar', 'proj_mar+1', 'ESTOQUE ATUAL',\n", + " 'ESTOQUE EM TRANSITO', 'PEDIDO PENDENTE', 'DDV PREVISTO', 'preço',\n", + " '202412', '202415', 'C-4', 'C-3', 'C-2', 'C-1', 'Atual', 'INICIO CICLO',\n", + " 'FIM CICLO', 'DURAÇÃO', 'Descrição_y', 'chave sku2', 'chave sku1',\n", + " 'PRECO DE COMPRA', 'PRECO DE VENDA', 'UFPRODUTO', 'PDV GINSENG',\n", + " 'PRODUTO', 'chave', 'PICO DE VENDAS 2024',\n", + " 'Pico Vendas Ultimos 6 ciclos', 'CRESCIMENTO_GERAL',\n", + " 'MEDIANA DO HISTÓRICO', 'MEDIA DO HISTÓRICO', 'med_por_canal',\n", + " 'CRESCIMENTO_FINAL', 'PV GINSENG', 'COBERTURA ATUAL', 'Estoque Total'],\n", + " dtype='object')" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final_dedup.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 128, "metadata": {}, "outputs": [], "source": [ - "df_final_dedup = df_final_dedup[['DURAÇÃO','CANAL','ANALISTA','SUPERVISOR','UF','chave','PDV','DESCRIÇÃO PDV','Código','DESCRICAO','LINHA','Categoria','curva','Percentual de desconto consumidor','Ação consumidor',\n", - " 'Percentual de desconto revendedor','Ação revendedor','C-4', 'C-3', 'C-2', 'C-1','Atual','ESTOQUE ATUAL',ciclo_ano_passado ,'ESTOQUE EM TRANSITO','PEDIDO PENDENTE','Estoque Total',\n", + "df_final_dedup = df_final_dedup.drop(columns='Descrição_y')\n", + "\n", + "df_final_dedup = df_final_dedup.rename(columns={'Descrição_x':'Descrição'})" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": {}, + "outputs": [], + "source": [ + "df_final_dedup = df_final_dedup[['DURAÇÃO','CANAL','ANALISTA','SUPERVISOR','UF','chave','PDV','DESCRIÇÃO PDV','Código','Descrição','LINHA','Categoria','curva','Percentual de desconto consumidor','Ação consumidor',\n", + " 'Percentual de desconto revendedor','Ação revendedor','C-4', 'C-3', 'C-2', 'C-1','Atual',ciclo_ano_passado ,'ESTOQUE ATUAL','ESTOQUE EM TRANSITO','PEDIDO PENDENTE','Estoque Total',\n", " 'DDV PREVISTO','COBERTURA ATUAL','proj_mar', 'proj_mar+1','MEDIA DO HISTÓRICO','PICO DE VENDAS 2024','Pico Vendas Ultimos 6 ciclos','PRECO DE COMPRA',\n", " 'PRECO DE VENDA','PV GINSENG']]" ] }, { "cell_type": "code", - "execution_count": 315, + "execution_count": 130, "metadata": {}, "outputs": [], "source": [ @@ -5632,16 +5315,16 @@ }, { "cell_type": "code", - "execution_count": 316, + "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'202414'" + "'202415'" ] }, - "execution_count": 316, + "execution_count": 131, "metadata": {}, "output_type": "execute_result" } @@ -5652,7 +5335,7 @@ }, { "cell_type": "code", - "execution_count": 317, + "execution_count": 132, "metadata": {}, "outputs": [], "source": [ @@ -5661,18 +5344,18 @@ }, { "cell_type": "code", - "execution_count": 318, + "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "df_final_dedup['Valor Sugestão'] = \"\"\n", "\n", - "df_final_dedup['Sugestão Comercial'] = \"\"" + "df_final_dedup['Sugestão Abastecimento'] = \"\"" ] }, { "cell_type": "code", - "execution_count": 319, + "execution_count": 134, "metadata": {}, "outputs": [ { @@ -5683,7 +5366,7 @@ "dtype: object" ] }, - "execution_count": 319, + "execution_count": 134, "metadata": {}, "output_type": "execute_result" } @@ -5695,7 +5378,7 @@ }, { "cell_type": "code", - "execution_count": 320, + "execution_count": 135, "metadata": {}, "outputs": [], "source": [ @@ -5706,7 +5389,7 @@ }, { "cell_type": "code", - "execution_count": 321, + "execution_count": 136, "metadata": {}, "outputs": [ { @@ -5739,7 +5422,7 @@ " PDV\n", " DESCRIÇÃO PDV\n", " Código\n", - " DESCRICAO\n", + " Descrição\n", " ...\n", " proj_mar\n", " proj_mar+1\n", @@ -5750,12 +5433,12 @@ " PRECO DE VENDA\n", " PV GINSENG\n", " Valor Sugestão\n", - " Sugestão Comercial\n", + " Sugestão Abastecimento\n", " \n", " \n", " \n", " \n", - " 1\n", + " 32171\n", " 21\n", " VD\n", " JEFFERSON\n", @@ -5768,13 +5451,13 @@ " MALBEC DES COL V6 100ml\n", " ...\n", " 1505.0\n", - " 0.0\n", - " 545.894737\n", + " 242.0\n", + " 612.388889\n", " 2734.0\n", " 857.0\n", " 0.0\n", " 0.0\n", - " 412.0\n", + " 12.0\n", " \n", " \n", " \n", @@ -5784,25 +5467,25 @@ "" ], "text/plain": [ - " DURAÇÃO CANAL ANALISTA SUPERVISOR UF chave PDV \\\n", - "1 21 VD JEFFERSON Juliana Vasconcelos VDC 2371184387 23711 \n", + " DURAÇÃO CANAL ANALISTA SUPERVISOR UF chave PDV \\\n", + "32171 21 VD JEFFERSON Juliana Vasconcelos VDC 2371184387 23711 \n", "\n", - " DESCRIÇÃO PDV Código DESCRICAO ... proj_mar \\\n", - "1 ER VITORIA DA CONQUISTA 84387 MALBEC DES COL V6 100ml ... 1505.0 \n", + " DESCRIÇÃO PDV Código Descrição ... proj_mar \\\n", + "32171 ER VITORIA DA CONQUISTA 84387 MALBEC DES COL V6 100ml ... 1505.0 \n", "\n", - " proj_mar+1 MEDIA DO HISTÓRICO PICO DE VENDAS 2024 \\\n", - "1 0.0 545.894737 2734.0 \n", + " proj_mar+1 MEDIA DO HISTÓRICO PICO DE VENDAS 2024 \\\n", + "32171 242.0 612.388889 2734.0 \n", "\n", - " Pico Vendas Ultimos 6 ciclos PRECO DE COMPRA PRECO DE VENDA PV GINSENG \\\n", - "1 857.0 0.0 0.0 412.0 \n", + " Pico Vendas Ultimos 6 ciclos PRECO DE COMPRA PRECO DE VENDA PV GINSENG \\\n", + "32171 857.0 0.0 0.0 12.0 \n", "\n", - " Valor Sugestão Sugestão Comercial \n", - "1 \n", + " Valor Sugestão Sugestão Abastecimento \n", + "32171 \n", "\n", "[1 rows x 39 columns]" ] }, - "execution_count": 321, + "execution_count": 136, "metadata": {}, "output_type": "execute_result" } @@ -5813,17 +5496,17 @@ }, { "cell_type": "code", - "execution_count": 322, + "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1 94.98\n", + "32171 88.7\n", "Name: DDV PREVISTO, dtype: float64" ] }, - "execution_count": 322, + "execution_count": 137, "metadata": {}, "output_type": "execute_result" } @@ -5834,7 +5517,271 @@ }, { "cell_type": "code", - "execution_count": 323, + "execution_count": 138, + "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", + "
DURAÇÃOCANALANALISTASUPERVISORUFchavePDVDESCRIÇÃO PDVCódigoDescrição...proj_marproj_mar+1MEDIA DO HISTÓRICOPICO DE VENDAS 2024Pico Vendas Ultimos 6 ciclosPRECO DE COMPRAPRECO DE VENDAPV GINSENGValor SugestãoSugestão Abastecimento
021TODOSLUANEfigênia HerculanoAL125225005212522MACEIO SHOP EXP50052ARBO LOC DES HID CPO 75ml...1.00.00.1111112.00.011.7237.90.0
121TODOSJEFFERSONMaxwell VieiraAL128175005212817SHOPPING PATIO50052ARBO LOC DES HID CPO 75ml...1.00.00.5555565.00.011.7237.91.0
221TODOSPEDROMaxwell VieiraAL128185005212818GB SERRARIA50052ARBO LOC DES HID CPO 75ml...0.00.00.0555561.01.011.7237.90.0
321TODOSTHAYLLANMaxwell VieiraAL128205005212820ATACADÃO50052ARBO LOC DES HID CPO 75ml...0.00.00.0555561.00.011.7237.90.0
421TODOSMARCYARAEfigênia HerculanoAL128235005212823PONTA VERDE50052ARBO LOC DES HID CPO 75ml...0.00.00.1111111.00.011.7237.90.0
\n", + "

5 rows × 39 columns

\n", + "
" + ], + "text/plain": [ + " DURAÇÃO CANAL ANALISTA SUPERVISOR UF chave PDV \\\n", + "0 21 TODOS LUAN Efigênia Herculano AL 1252250052 12522 \n", + "1 21 TODOS JEFFERSON Maxwell Vieira AL 1281750052 12817 \n", + "2 21 TODOS PEDRO Maxwell Vieira AL 1281850052 12818 \n", + "3 21 TODOS THAYLLAN Maxwell Vieira AL 1282050052 12820 \n", + "4 21 TODOS MARCYARA Efigênia Herculano AL 1282350052 12823 \n", + "\n", + " DESCRIÇÃO PDV Código Descrição ... proj_mar \\\n", + "0 MACEIO SHOP EXP 50052 ARBO LOC DES HID CPO 75ml ... 1.0 \n", + "1 SHOPPING PATIO 50052 ARBO LOC DES HID CPO 75ml ... 1.0 \n", + "2 GB SERRARIA 50052 ARBO LOC DES HID CPO 75ml ... 0.0 \n", + "3 ATACADÃO 50052 ARBO LOC DES HID CPO 75ml ... 0.0 \n", + "4 PONTA VERDE 50052 ARBO LOC DES HID CPO 75ml ... 0.0 \n", + "\n", + " proj_mar+1 MEDIA DO HISTÓRICO PICO DE VENDAS 2024 \\\n", + "0 0.0 0.111111 2.0 \n", + "1 0.0 0.555556 5.0 \n", + "2 0.0 0.055556 1.0 \n", + "3 0.0 0.055556 1.0 \n", + "4 0.0 0.111111 1.0 \n", + "\n", + " Pico Vendas Ultimos 6 ciclos PRECO DE COMPRA PRECO DE VENDA PV GINSENG \\\n", + "0 0.0 11.72 37.9 0.0 \n", + "1 0.0 11.72 37.9 1.0 \n", + "2 1.0 11.72 37.9 0.0 \n", + "3 0.0 11.72 37.9 0.0 \n", + "4 0.0 11.72 37.9 0.0 \n", + "\n", + " Valor Sugestão Sugestão Abastecimento \n", + "0 \n", + "1 \n", + "2 \n", + "3 \n", + "4 \n", + "\n", + "[5 rows x 39 columns]" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final_dedup.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['DURAÇÃO', 'CANAL', 'ANALISTA', 'SUPERVISOR', 'UF', 'chave', 'PDV',\n", + " 'DESCRIÇÃO PDV', 'Código', 'Descrição', 'LINHA', 'Categoria', 'curva',\n", + " 'Percentual de desconto consumidor', 'Ação consumidor',\n", + " 'Percentual de desconto revendedor', 'Ação revendedor', 'C-4', 'C-3',\n", + " 'C-2', 'C-1', 'Atual', '202415', 'ESTOQUE ATUAL', 'ESTOQUE EM TRANSITO',\n", + " 'PEDIDO PENDENTE', 'Estoque Total', 'DDV PREVISTO', 'COBERTURA ATUAL',\n", + " 'proj_mar', 'proj_mar+1', 'MEDIA DO HISTÓRICO', 'PICO DE VENDAS 2024',\n", + " 'Pico Vendas Ultimos 6 ciclos', 'PRECO DE COMPRA', 'PRECO DE VENDA',\n", + " 'PV GINSENG', 'Valor Sugestão', 'Sugestão Abastecimento',\n", + " 'CANAL_CERTO'],\n", + " dtype='object')" + ] + }, + "execution_count": 139, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pdv_origi['PDV'] = df_pdv_origi['PDV'].astype('Int64')\n", + "\n", + "\n", + "\n", + "df_pdv_origi = df_pdv_origi.rename(columns={'CANAL':'CANAL_CERTO'})\n", + "\n", + "df_final_dedup= pd.merge(df_final_dedup,df_pdv_origi[['PDV','CANAL_CERTO']],on='PDV',how='inner')\n", + "\n", + "df_final_dedup['CANAL']= df_final_dedup['CANAL_CERTO']\n", + "\n", + "\n", + "df_final_dedup.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 140, "metadata": {}, "outputs": [], "source": [ diff --git a/relatorio_ruptura/ruptura_projetada.py b/relatorio_ruptura/ruptura_projetada.py index 1d44d1b..d366e63 100644 --- a/relatorio_ruptura/ruptura_projetada.py +++ b/relatorio_ruptura/ruptura_projetada.py @@ -11,10 +11,10 @@ from email.message import EmailMessage from email.utils import make_msgid from pathlib import Path from datetime import datetime, time - - from email.mime.image import MIMEImage +import warnings +warnings.filterwarnings("ignore", message="pandas only supports SQLAlchemy") hoje = datetime.today().strftime("%d/%m/%Y") @@ -40,7 +40,7 @@ calendario['ciclomais2'] = calendario['ano_ciclo'].astype(str) + (calendario['nu ciclo_mais2 = calendario[calendario['date'].dt.normalize() == today]['ciclomais2'].iloc[0] filtered_calendario = calendario[calendario['ciclo'] == ciclo_mais2][:1].copy() filtered_calendario['dias_ate_fim'] = (filtered_calendario['fim ciclo'].iloc[0] - today).days -print(filtered_calendario[['duração', 'dias_ate_fim']]) +#print(filtered_calendario[['duração', 'dias_ate_fim']]) query = ''' SELECT @@ -185,7 +185,7 @@ de_effi['data'] = pd.to_datetime(de_effi['data'], errors='coerce') grouped = ( de_effi.groupby('data')['quantidade_ruptura'] .sum() - .sort_index() + .sort_index().tail(30) ) # Step 3: Plot @@ -225,7 +225,7 @@ ruptura_por_uf_pct = ( .sort_values(ascending=True) .apply(lambda x: (x / ruptura_total) * 100) ) -print(ruptura_por_uf_pct) +#print(ruptura_por_uf_pct) ax = ruptura_por_uf_pct.plot(kind='barh', figsize=(10, 6), color='skyblue') for i, v in enumerate(ruptura_por_uf_pct): ax.text(v + 0.3, i, f"{v:.1f}%", va='center') @@ -295,4 +295,5 @@ with smtplib.SMTP('smtp-mail.outlook.com', 587) as smtp: smtp.login(remetente, senha) smtp.send_message(msg) -print("E-mail enviado com sucesso.") \ No newline at end of file +print("E-mail enviado com sucesso.",hoje) +print("############################################################") \ No newline at end of file