diff --git a/Lançamentos/COMPILADOR DE ARQUIVOS EM XLSX.ipynb b/Lançamentos/COMPILADOR DE ARQUIVOS EM XLSX.ipynb new file mode 100644 index 0000000..88f0adf --- /dev/null +++ b/Lançamentos/COMPILADOR DE ARQUIVOS EM XLSX.ipynb @@ -0,0 +1,231 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "e9ac37de", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total de linhas: 875\n" + ] + }, + { + "data": { + "text/html": [ + "
| \n", + " | UN | \n", + "PDV | \n", + "CIDADE | \n", + "LOCAL DO PDV | \n", + "RECEITA PERÍODO ANTERIOR | \n", + "RECEITA PERÍODO ATUAL | \n", + "META PEF | \n", + "GAP ACORDADO (R$) | \n", + "GAP ACORDADO (%) | \n", + "REALIZADO | \n", + "arquivo_base | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "Quem Disse Berenice | \n", + "910173 | \n", + "Maceio | \n", + "Shopping | \n", + "173913.81 | \n", + "0 | \n", + "167464.53 | \n", + "-167464.53 | \n", + "-1 | \n", + "0 | \n", + "C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistên... | \n", + "
| 1 | \n", + "O Boticário | \n", + "21381 | \n", + "Capim Grosso | \n", + "Rua | \n", + "120594.40 | \n", + "0 | \n", + "155346.60 | \n", + "-155346.60 | \n", + "-1 | \n", + "0 | \n", + "C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistên... | \n", + "
| 2 | \n", + "O Boticário | \n", + "23707 | \n", + "Vitoria Da Conquista | \n", + "Rua | \n", + "131055.70 | \n", + "0 | \n", + "159139.40 | \n", + "-159139.40 | \n", + "-1 | \n", + "0 | \n", + "C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistên... | \n", + "
| 3 | \n", + "O Boticário | \n", + "21068 | \n", + "Simoes Filho | \n", + "Cash & Carry | \n", + "146448.38 | \n", + "0 | \n", + "144695.45 | \n", + "-144695.45 | \n", + "-1 | \n", + "0 | \n", + "C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistên... | \n", + "
| 4 | \n", + "O Boticário | \n", + "20441 | \n", + "Lagarto | \n", + "Rua | \n", + "225341.32 | \n", + "0 | \n", + "311878.51 | \n", + "-311878.51 | \n", + "-1 | \n", + "0 | \n", + "C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistên... | \n", + "
| \n", + " | PDV | \n", + "CANAL | \n", + "DESCRIÇÃO PDV | \n", + "PDV DESC | \n", + "UF | \n", + "ANALISTA | \n", + "SUPERVISOR | \n", + "STATUS | \n", + "MATCH | \n", + "
|---|---|---|---|---|---|---|---|---|---|
| 77 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "1 | \n", + "
| \n", + " | PRODUTO LANÇAMENTO | \n", + "DESCRIÇÃO DO LANÇAMENTO | \n", + "PRODUTO SIMILAR | \n", + "DESCRIÇÃO SIMILAR | \n", + "CICLO SIMILAR | \n", + "FOCO | \n", + "IAF | \n", + "CATEGORIA | \n", + "MARCA | \n", + "% CONSUMIDOR | \n", + "... | \n", + "CAMPANHA | \n", + "MATCH | \n", + "PDV | \n", + "CANAL | \n", + "DESCRIÇÃO PDV | \n", + "PDV DESC | \n", + "UF | \n", + "ANALISTA | \n", + "SUPERVISOR | \n", + "STATUS | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 26 | \n", + "86312 | \n", + "DIVA CREM HID MAOS 50g | \n", + "93924 | \n", + "DIVA CREM HID MAOS ESPLENDIDA 50g] | \n", + "C202202 | \n", + "Não | \n", + "Não | \n", + "CUIDADOS COM A PELE | \n", + "DIVA | \n", + "0,00 | \n", + "... | \n", + "Lançamentos | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 57 | \n", + "84959 | \n", + "EUD MAKE BAS LIQ CONTR SK/PERF 100F 30ml | \n", + "50634 | \n", + "GLAM BASE LIQ SK/CONTR COR 00 30ml | \n", + "C202305 | \n", + "Não | \n", + "Não | \n", + "MAQUIAGEM | \n", + "EUDORA MAKE | \n", + "0,00 | \n", + "... | \n", + "Lançamentos | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 88 | \n", + "84960 | \n", + "EUD MAKE BAS LIQ CONTR SK/PERF 120N 30ml | \n", + "50630 | \n", + "GLAM BASE LIQ SK/CONTR COR 05 30ml | \n", + "C202305 | \n", + "Não | \n", + "Não | \n", + "MAQUIAGEM | \n", + "EUDORA MAKE | \n", + "0,00 | \n", + "... | \n", + "Lançamentos | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 119 | \n", + "84962 | \n", + "EUD MAKE BAS LIQ CONTR SK/PERF 140Q 30ml | \n", + "50629 | \n", + "GLAM BASE LIQ SK/CONTR COR 10 30ml | \n", + "C202305 | \n", + "Não | \n", + "Não | \n", + "MAQUIAGEM | \n", + "EUDORA MAKE | \n", + "0,00 | \n", + "... | \n", + "Lançamentos | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 150 | \n", + "84963 | \n", + "EUD MAKE BAS LIQ CONTR SK/PERF 170Q 30ml | \n", + "50628 | \n", + "GLAM BASE LIQ SK/CONTR COR 15 30ml | \n", + "C202305 | \n", + "Não | \n", + "Não | \n", + "MAQUIAGEM | \n", + "EUDORA MAKE | \n", + "0,00 | \n", + "... | \n", + "Lançamentos | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 2475 | \n", + "19047 | \n", + "19047 COMBO TRIO BÁSICO 30 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 2506 | \n", + "52168 | \n", + "NEO DERMO GEL LIMP FAC PURIFIC 150g | \n", + "52168 | \n", + "NEO DERMO GEL LIMP FAC PURIFIC 150g | \n", + "C202311 | \n", + "Não | \n", + "Não | \n", + "CUIDADOS FACIAIS | \n", + "NEO DERMO | \n", + "19,34 | 25,14 | 7,00 | \n", + "... | \n", + "Promoções | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 2537 | \n", + "52038 | \n", + "NEO DERMO CR ANTIS FAC 30 PRO AGE 50g | \n", + "52038 | \n", + "NEO DERMO CR ANTIS FAC 30 PRO AGE 50g | \n", + "C202308 | \n", + "Não | \n", + "Não | \n", + "CUIDADOS FACIAIS | \n", + "NEO DERMO | \n", + "20,09 | 25,14 | 7,00 | \n", + "... | \n", + "Promoções | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 2568 | \n", + "19048 | \n", + "COMBO TRIO BASICO 45 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
| 2599 | \n", + "52033 | \n", + "NEO DERMO CR ANTIS FAC 45 PRO AGE 50g | \n", + "52038 | \n", + "NEO DERMO CR ANTIS FAC 30 PRO AGE 50g | \n", + "C202308 | \n", + "Não | \n", + "Não | \n", + "CUIDADOS FACIAIS | \n", + "NEO DERMO | \n", + "20,09 | 25,14 | 7,00 | \n", + "... | \n", + "Promoções | \n", + "1 | \n", + "24255 | \n", + "VD | \n", + "VD Irecê | \n", + "VD Irecê | \n", + "BA3 | \n", + "LAIS | \n", + "Arianne Sodré [Provisório] | \n", + "ATIVO | \n", + "
84 rows × 24 columns
\n", + "| \n", + " | Dia | \n", + "PDV | \n", + "Código do Produto | \n", + "Quantidade | \n", + "
|---|---|---|---|---|
| 0 | \n", + "2025-06-02 | \n", + "20998 | \n", + "82113 | \n", + "0 | \n", + "
| 1 | \n", + "2025-06-10 | \n", + "20998 | \n", + "82113 | \n", + "1 | \n", + "
| 2 | \n", + "2025-06-05 | \n", + "20998 | \n", + "85299 | \n", + "2 | \n", + "
| 3 | \n", + "2025-06-06 | \n", + "20998 | \n", + "85299 | \n", + "0 | \n", + "
| 4 | \n", + "2025-06-04 | \n", + "20998 | \n", + "85299 | \n", + "2 | \n", + "
| \n", + " | Dia | \n", + "PDV | \n", + "Código do Produto | \n", + "Quantidade | \n", + "
|---|---|---|---|---|
| 0 | \n", + "02/06/2025 | \n", + "20998 | \n", + "82113 | \n", + "0 | \n", + "
| 1 | \n", + "10/06/2025 | \n", + "20998 | \n", + "82113 | \n", + "1 | \n", + "
| 2 | \n", + "05/06/2025 | \n", + "20998 | \n", + "85299 | \n", + "2 | \n", + "
| 3 | \n", + "06/06/2025 | \n", + "20998 | \n", + "85299 | \n", + "0 | \n", + "
| 4 | \n", + "04/06/2025 | \n", + "20998 | \n", + "85299 | \n", + "2 | \n", + "
| \n", + " | Dia | \n", + "PDV | \n", + "Código do Produto | \n", + "Quantidade | \n", + "
|---|---|---|---|---|
| 0 | \n", + "02/06/2025 | \n", + "20998 | \n", + "82113 | \n", + "0 | \n", + "
| 1 | \n", + "10/06/2025 | \n", + "20998 | \n", + "82113 | \n", + "1 | \n", + "
| 2 | \n", + "05/06/2025 | \n", + "20998 | \n", + "85299 | \n", + "2 | \n", + "
| 3 | \n", + "06/06/2025 | \n", + "20998 | \n", + "85299 | \n", + "0 | \n", + "
| 4 | \n", + "04/06/2025 | \n", + "20998 | \n", + "85299 | \n", + "2 | \n", + "
533 rows × 4 columns
\n", + "2339202 rows × 4 columns
\n", "" ], "text/plain": [ - " PDV Código do Produto Ciclo Quantidade Acumulada\n", - "0 20968 50112 C202310 44\n", - "1 20968 50112 C202311 60\n", - "2 20968 50112 C202313 70\n", - "3 20968 50112 C202314 73\n", - "4 20968 50112 C202315 75\n", - ".. ... ... ... ...\n", - "528 22541 52699 C202409 10\n", - "529 22541 52699 C202410 11\n", - "530 22541 52699 C202411 13\n", - "531 22541 56572 C202411 38\n", - "532 22541 57390 C202411 22\n", + " PDV Código do Produto Ciclo Quantidade Acumulada\n", + "0 11111 48130 C202309 0.0\n", + "1 11201 1004 C202509 0.0\n", + "2 11201 1005 C202509 0.0\n", + "3 11201 1078 C202509 0.0\n", + "4 11201 1296 C202509 0.0\n", + "... ... ... ... ...\n", + "2339197 5699 90772 C202511 0.0\n", + "2339198 5699 90774 C202511 0.0\n", + "2339199 5699 90774 C202512 3.0\n", + "2339200 5699 90776 C202511 0.0\n", + "2339201 8074 43151 C202505 0.0\n", "\n", - "[533 rows x 4 columns]" + "[2339202 rows x 4 columns]" ] }, - "execution_count": 19, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -659,17 +1465,38 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 29, + "id": "e2ae413b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(211020534.731)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_venda_agrupado['Quantidade Acumulada'].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, "id": "dc452c72", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(170, 75)" + "(2604, 75)" ] }, - "execution_count": 20, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -681,7 +1508,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 31, "id": "c260e0e3", "metadata": {}, "outputs": [], @@ -691,7 +1518,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 32, "id": "8a05450c", "metadata": {}, "outputs": [], @@ -704,7 +1531,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 33, "id": "cc65edab", "metadata": {}, "outputs": [], @@ -715,7 +1542,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 34, "id": "c5cd5f42", "metadata": {}, "outputs": [], @@ -731,17 +1558,17 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 35, "id": "69c88d20", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "np.int64(17)" + "np.int64(84)" ] }, - "execution_count": 25, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -752,19 +1579,14 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 36, "id": "f5206f50", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['Histórico de Vendas do Ciclo 202407',\n", - " 'Histórico de Vendas do Ciclo 202408',\n", - " 'Histórico de Vendas do Ciclo 202409',\n", - " 'Histórico de Vendas do Ciclo 202410',\n", - " 'Histórico de Vendas do Ciclo 202411',\n", - " 'Histórico de Vendas do Ciclo 202412',\n", + "Index(['Histórico de Vendas do Ciclo 202412',\n", " 'Histórico de Vendas do Ciclo 202413',\n", " 'Histórico de Vendas do Ciclo 202414',\n", " 'Histórico de Vendas do Ciclo 202415',\n", @@ -775,39 +1597,56 @@ " 'Histórico de Vendas do Ciclo 202503',\n", " 'Histórico de Vendas do Ciclo 202504',\n", " 'Histórico de Vendas do Ciclo 202505',\n", - " 'Histórico de Vendas do Ciclo 202506'],\n", + " 'Histórico de Vendas do Ciclo 202506',\n", + " 'Histórico de Vendas do Ciclo 202507',\n", + " 'Histórico de Vendas do Ciclo 202508',\n", + " 'Histórico de Vendas do Ciclo 202509',\n", + " 'Histórico de Vendas do Ciclo 202510',\n", + " 'Histórico de Vendas do Ciclo 202511'],\n", " dtype='object')" ] }, - "execution_count": 26, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final.columns[29:46]" + "df_final.columns[30:47]" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 37, + "id": "2a049809", + "metadata": {}, + "outputs": [], + "source": [ + "colunas = df_final.columns[30:47]\n", + "\n", + "df_final[colunas] = df_final[colunas].fillna(0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 38, "id": "0a1bb832", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "np.float64(0.2176)" + "np.float64(0.0812)" ] }, - "execution_count": 27, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Suponha que os meses estão nas colunas 10 a 26 (17 colunas = 17 meses)\n", - "colunas_mensais = df_final.columns[29:46]\n", + "colunas_mensais = df_final.columns[30:47]\n", "\n", "# Passo 1: Soma todas as linhas (itens) por mês → resultado: total por mês\n", "soma_mensal = df_final[colunas_mensais].sum()\n", @@ -841,7 +1680,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 39, "id": "a9647c32", "metadata": {}, "outputs": [], @@ -854,35 +1693,7 @@ }, { "cell_type": "code", - "execution_count": 29, - "id": "b107e519", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Histórico de Vendas do Ciclo 202501',\n", - " 'Histórico de Vendas do Ciclo 202502',\n", - " 'Histórico de Vendas do Ciclo 202503',\n", - " 'Histórico de Vendas do Ciclo 202504',\n", - " 'Histórico de Vendas do Ciclo 202505',\n", - " 'Histórico de Vendas do Ciclo 202506',\n", - " 'Histórico de Vendas do Ciclo Atual'],\n", - " dtype='object')" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_final.columns[40:47]" - ] - }, - { - "cell_type": "code", - "execution_count": 30, + "execution_count": 40, "id": "8290853c", "metadata": {}, "outputs": [], @@ -894,118 +1705,94 @@ "\n", "df_final['MEDIANA DO HISTÓRICO'] = df_final[colunas_mensais].dropna().median(axis=1)\n", "\n", + "df_final['MEDIA DO HISTÓRICO'] = df_final[colunas_mensais].dropna().mean(axis=1)\n", + "\n", "df_final['Vendas Ciclo Lançamento'] = df_final['Vendas Ciclo Lançamento'].fillna(0)" ] }, { "cell_type": "code", - "execution_count": 31, - "id": "07f043f2", + "execution_count": 41, + "id": "d3228386", + "metadata": {}, + "outputs": [], + "source": [ + "df_final['MEDIANA DO HISTÓRICO USADA'] = np.where(df_final['MEDIA DO HISTÓRICO']| \n", - " | CANAL | \n", - "med_por_canal | \n", - "
|---|---|---|
| 0 | \n", - "CD | \n", - "17.0 | \n", - "
| 1 | \n", - "HIB | \n", - "1.0 | \n", - "
| 2 | \n", - "VD | \n", - "12.0 | \n", - "
| \n", + " | CANAL | \n", + "UF | \n", + "med_por_canal | \n", + "
|---|---|---|---|
| 0 | \n", + "CD | \n", + "AL | \n", + "60.176471 | \n", + "
| 1 | \n", + "HIB | \n", + "AL | \n", + "15.117647 | \n", + "
| 2 | \n", + "HIB | \n", + "BA | \n", + "0.941176 | \n", + "
| 3 | \n", + "HIB | \n", + "BA3 | \n", + "0.470588 | \n", + "
| 4 | \n", + "HIB | \n", + "SE | \n", + "6.941176 | \n", + "
| 5 | \n", + "HIB | \n", + "VDC | \n", + "0.411765 | \n", + "
| 6 | \n", + "VD | \n", + "AL | \n", + "42.705882 | \n", + "
| 7 | \n", + "VD | \n", + "BA | \n", + "1.588235 | \n", + "
| 8 | \n", + "VD | \n", + "BA3 | \n", + "0.823529 | \n", + "
| 9 | \n", + "VD | \n", + "SE | \n", + "26.352941 | \n", + "
| 10 | \n", + "VD | \n", + "VDC | \n", + "2.647059 | \n", + "
| \n", + " | loja_id | \n", + "code | \n", + "description | \n", + "launch | \n", + "deactivation | \n", + "thirdtolastcyclesales | \n", + "secondtolastcyclesales | \n", + "lastcyclesales | \n", + "currentcyclesales | \n", + "nextcycleprojection | \n", + "... | \n", + "criticalitem_blockedwallet | \n", + "criticalitem_iscritical | \n", + "codsubcategory | \n", + "isproductdeactivated | \n", + "brandgroupcode | \n", + "dayswithoutsales | \n", + "coveragedays | \n", + "hascoverage | \n", + "status_venda | \n", + "valor_estoque_parado | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "20997 | \n", + "48359 | \n", + "ZAAD EDP 50ml V2 | \n", + "\n", + " | \n", + " | 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "2 | \n", + "... | \n", + "False | \n", + "False | \n", + "PERFUMARIA MASCULINA | \n", + "False | \n", + "BOT | \n", + "54 | \n", + "20 | \n", + "False | \n", + "mais de 40 dias | \n", + "168.09 | \n", + "
| 1 | \n", + "20997 | \n", + "48789 | \n", + "THE BLEND DES ANTIT AER 75g/125ml V3 | \n", + "\n", + " | \n", + " | 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "False | \n", + "False | \n", + "DESODORANTE MASCULINO | \n", + "False | \n", + "BOT | \n", + "72 | \n", + "25 | \n", + "True | \n", + "mais de 60 dias | \n", + "12.37 | \n", + "
| 2 | \n", + "20997 | \n", + "70693 | \n", + "SOPHIE LOC HID CPO 200ml | \n", + "\n", + " | \n", + " | 0 | \n", + "2 | \n", + "0 | \n", + "0 | \n", + "3 | \n", + "... | \n", + "False | \n", + "False | \n", + "CUIDADOS COM O CORPO | \n", + "False | \n", + "BOT | \n", + "48 | \n", + "4 | \n", + "False | \n", + "mais de 40 dias | \n", + "11.41 | \n", + "
| 3 | \n", + "20997 | \n", + "75921 | \n", + "SOPHIE BATOM ROSA PINK 3,3g | \n", + "\n", + " | \n", + " | 1 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "3 | \n", + "... | \n", + "False | \n", + "False | \n", + "MAQUIAGEM | \n", + "False | \n", + "BOT | \n", + "53 | \n", + "15 | \n", + "False | \n", + "mais de 40 dias | \n", + "16.58 | \n", + "
| 4 | \n", + "20997 | \n", + "53410 | \n", + "REF NSPA SAB LIQ CPO PERF AMEI/NEG 200ml | \n", + "\n", + " | \n", + " | 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "6 | \n", + "... | \n", + "False | \n", + "False | \n", + "CORPO | \n", + "False | \n", + "BOT | \n", + "135 | \n", + "31 | \n", + "True | \n", + "acima de 100 dias | \n", + "85.12 | \n", + "
5 rows × 34 columns
\n", + "| \n", + " | loja_id | \n", + "code | \n", + "description | \n", + "launch | \n", + "deactivation | \n", + "thirdtolastcyclesales | \n", + "secondtolastcyclesales | \n", + "lastcyclesales | \n", + "currentcyclesales | \n", + "nextcycleprojection | \n", + "... | \n", + "isproductdeactivated | \n", + "brandgroupcode | \n", + "dayswithoutsales | \n", + "coveragedays | \n", + "hascoverage | \n", + "status_venda | \n", + "valor_estoque_parado | \n", + "estoque futuro | \n", + "PDV | \n", + "UF | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "20997 | \n", + "48359 | \n", + "ZAAD EDP 50ml V2 | \n", + "\n", + " | \n", + " | 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "2 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "54 | \n", + "20 | \n", + "False | \n", + "mais de 40 dias | \n", + "168.09 | \n", + "3 | \n", + "20997 | \n", + "AL | \n", + "
| 1 | \n", + "20997 | \n", + "48789 | \n", + "THE BLEND DES ANTIT AER 75g/125ml V3 | \n", + "\n", + " | \n", + " | 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "72 | \n", + "25 | \n", + "True | \n", + "mais de 60 dias | \n", + "12.37 | \n", + "1 | \n", + "20997 | \n", + "AL | \n", + "
| 2 | \n", + "20997 | \n", + "70693 | \n", + "SOPHIE LOC HID CPO 200ml | \n", + "\n", + " | \n", + " | 0 | \n", + "2 | \n", + "0 | \n", + "0 | \n", + "3 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "48 | \n", + "4 | \n", + "False | \n", + "mais de 40 dias | \n", + "11.41 | \n", + "1 | \n", + "20997 | \n", + "AL | \n", + "
| 3 | \n", + "20997 | \n", + "75921 | \n", + "SOPHIE BATOM ROSA PINK 3,3g | \n", + "\n", + " | \n", + " | 1 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "3 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "53 | \n", + "15 | \n", + "False | \n", + "mais de 40 dias | \n", + "16.58 | \n", + "2 | \n", + "20997 | \n", + "AL | \n", + "
| 4 | \n", + "20997 | \n", + "53410 | \n", + "REF NSPA SAB LIQ CPO PERF AMEI/NEG 200ml | \n", + "\n", + " | \n", + " | 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "6 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "135 | \n", + "31 | \n", + "True | \n", + "acima de 100 dias | \n", + "85.12 | \n", + "7 | \n", + "20997 | \n", + "AL | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 3437 | \n", + "20997 | \n", + "82845 | \n", + "MATCH COND LISO PROLONGADO 280ml | \n", + "\n", + " | \n", + " | 3 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "2 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "66 | \n", + "28 | \n", + "True | \n", + "mais de 60 dias | \n", + "42.48 | \n", + "3 | \n", + "20997 | \n", + "AL | \n", + "
| 3438 | \n", + "20997 | \n", + "49093 | \n", + "MATCH AMP CAP PREENCHEDORA 9ml | \n", + "\n", + " | \n", + " | 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "66 | \n", + "18 | \n", + "False | \n", + "mais de 60 dias | \n", + "20.04 | \n", + "2 | \n", + "20997 | \n", + "AL | \n", + "
| 3439 | \n", + "20997 | \n", + "50165 | \n", + "MALBEC SHW GEL CAB/CPO 75g | \n", + "\n", + " | \n", + " | 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "157 | \n", + "17 | \n", + "False | \n", + "acima de 100 dias | \n", + "9.08 | \n", + "1 | \n", + "20997 | \n", + "AL | \n", + "
| 3440 | \n", + "20997 | \n", + "59017 | \n", + "MALBEC LOC DES HID CPO MATE 75ml | \n", + "\n", + " | \n", + " | 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "89 | \n", + "34 | \n", + "True | \n", + "mais de 80 dias | \n", + "21.02 | \n", + "2 | \n", + "20997 | \n", + "AL | \n", + "
| 3441 | \n", + "20997 | \n", + "56000 | \n", + "PMPCK MEN CABELOS | \n", + "\n", + " | \n", + " | 1 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "False | \n", + "BOT | \n", + "43 | \n", + "71 | \n", + "True | \n", + "mais de 40 dias | \n", + "94.48 | \n", + "4 | \n", + "20997 | \n", + "AL | \n", + "
3442 rows × 37 columns
\n", + "Prezados,
\n", + "Segue em anexo o relatório em Excel conforme solicitado.
\n", + "Resumo gráfico:
\n", + "Atenciosamente,
Equipe de Dados
| \n", + " | pdv | \n", + "SKU | \n", + "SKU_FINAL | \n", + "ESTOQUE ATUAL | \n", + "ESTOQUE EM TRANSITO | \n", + "PEDIDO PENDENTE | \n", + "Curva | \n", + "CATEGORIA | \n", + "DiasSemVenda | \n", + "nextcycleprojection | \n", + "secondtonextcycleprojection | \n", + "
|---|
| \n", + " | PDV | \n", + "SKU | \n", + "DESCRICAO | \n", + "VENDAS_CICLO | \n", + "Ciclo | \n", + "
|---|---|---|---|---|---|
| 0 | \n", + "12823 | \n", + "48664 | \n", + "BOTICOLL PORTINARI DES COL 100ml V5 | \n", + "1.0 | \n", + "C202411 | \n", + "
| 1 | \n", + "12826 | \n", + "48060 | \n", + "LILY CREM DES HID ACET CPO 250g V8 | \n", + "7.0 | \n", + "C202414 | \n", + "
| 2 | \n", + "20998 | \n", + "55142 | \n", + "CASA 214 DIFUS VARET BRIS/CEDROS 250ml | \n", + "1.0 | \n", + "C202414 | \n", + "
| 3 | \n", + "21495 | \n", + "52225 | \n", + "NSPA SAB BARR CPO AMEI 90g V6 | \n", + "0.0 | \n", + "C202412 | \n", + "
| 4 | \n", + "20441 | \n", + "52016 | \n", + "NSPA CREM HID MAOS AMEI DOUR 75g | \n", + "1.0 | \n", + "C202413 | \n", + "
188536 rows × 21 columns
\n", + "5 rows × 22 columns
\n", "" ], "text/plain": [ - " PDV SKU DESCRICAO C202411 \\\n", - "0 11201 1004 FLORATTA DES COL MY BLUE 75ml 0.0 \n", - "1 11201 1005 DEM FLORATTA DES COL MY BLUE 4ml 0.0 \n", - "2 11201 1078 MATCH SRUM CAP POS QUIMICA 50ml 0.0 \n", - "3 11201 1296 PMPCK THE BLEND DES ANTIT AER 2x75g 0.0 \n", - "4 11201 1302 PMPCK LILY DES ANTIT AER 2x75g 0.0 \n", - "... ... ... ... ... \n", - "188531 5699 90770 PIN BALAO O BOTICARIO PAIS/25 UNIT 0.0 \n", - "188532 5699 90772 PIN AMOR O BOTICARIO PAIS/25 UNIT 0.0 \n", - "188533 5699 90774 PIN MELHOR PAI O BOTICARIO PAIS/25 UNIT 0.0 \n", - "188534 5699 90776 SACOLA TOP M O BOTICARIO PAIS 2025 UNIT 0.0 \n", - "188535 8074 43151 MATERIAL POS CONSUMO 0.0 \n", + " PDV SKU DESCRICAO C202411 C202412 \\\n", + "0 11201 1004 FLORATTA DES COL MY BLUE 75ml 0.0 0.0 \n", + "1 11201 1005 DEM FLORATTA DES COL MY BLUE 4ml 0.0 0.0 \n", + "2 11201 1078 MATCH SRUM CAP POS QUIMICA 50ml 0.0 0.0 \n", + "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", - " C202412 C202413 C202414 C202415 C202416 C202417 ... C202502 \\\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", - "188531 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "188532 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "188533 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "188534 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", - "188535 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 \n", + " C202413 C202414 C202415 C202416 C202417 ... C202503 C202504 \\\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", - " C202503 C202504 C202505 C202506 C202507 C202508 C202509 \\\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", - "188531 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "188532 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "188533 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "188534 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", - "188535 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 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", - " C202510 C202511 \n", - "0 0.0 0.0 \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - "... ... ... \n", - "188531 0.0 0.0 \n", - "188532 0.0 0.0 \n", - "188533 0.0 0.0 \n", - "188534 0.0 0.0 \n", - "188535 0.0 0.0 \n", - "\n", - "[188536 rows x 21 columns]" + "[5 rows x 22 columns]" ] }, - "execution_count": 7, + "execution_count": 137, "metadata": {}, "output_type": "execute_result" } @@ -520,12 +502,12 @@ "df_vendas = df_vendas.rename(columns=lambda x: f'Ciclo_{x}' if isinstance(x, (int, str)) and str(x).isdigit() else x)\n", "\n", "# Resultado final\n", - "df_vendas\n" + "df_vendas.head()\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 138, "metadata": {}, "outputs": [], "source": [ @@ -543,7 +525,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 139, "metadata": {}, "outputs": [], "source": [ @@ -564,7 +546,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 140, "metadata": {}, "outputs": [], "source": [ @@ -605,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 141, "metadata": {}, "outputs": [ { @@ -623,7 +605,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 142, "metadata": {}, "outputs": [ { @@ -634,7 +616,7 @@ " dtype='object')" ] }, - "execution_count": 12, + "execution_count": 142, "metadata": {}, "output_type": "execute_result" } @@ -645,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 143, "metadata": {}, "outputs": [], "source": [ @@ -659,7 +641,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 144, "metadata": {}, "outputs": [ { @@ -701,7 +683,7 @@ "Name: count, dtype: int64" ] }, - "execution_count": 14, + "execution_count": 144, "metadata": {}, "output_type": "execute_result" } @@ -712,7 +694,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 145, "metadata": {}, "outputs": [], "source": [ @@ -734,7 +716,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 146, "metadata": {}, "outputs": [], "source": [ @@ -743,7 +725,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 147, "metadata": {}, "outputs": [], "source": [ @@ -752,7 +734,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 148, "metadata": {}, "outputs": [], "source": [ @@ -784,7 +766,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 149, "metadata": {}, "outputs": [ { @@ -822,17 +804,17 @@ " \n", " \n", "350 rows × 47 columns
\n", + "5 rows × 47 columns
\n", "" ], "text/plain": [ - " Ciclo Veiculo Tipo de Promoção Estratégia de Promoção \\\n", - "0 202513 Guia CF Promoção CF Movimentar Flow \n", - "1 202513 Guia CF Promoção CF Movimentar Flow \n", - "2 202513 Guia CF Promoção CF Movimentar Flow \n", - "3 202513 Guia CF Promoção CF Movimentar Flow \n", - "4 202513 Guia CF Promoção CF Movimentar Flow \n", - ".. ... ... ... ... \n", - "345 202513 Fora Guia Promoção RE Movimentar Flow \n", - "346 202513 Fora Guia Promoção RE Movimentar Flow \n", - "347 202513 Fora Guia Promoção RE Movimentar Flow \n", - "348 202513 Fora Guia Promoção RE Movimentar Flow \n", - "349 202513 Fora Guia Promoção RE Movimentar Flow \n", + " 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", "\n", - " Tipo_mecanica Promo Período Limitado? EAM Categoria Cód. Combo \\\n", - "0 Desconto Direto NaN Não PERF. FEMININA NaN \n", - "1 Desconto Direto NaN Não PERF. FEMININA NaN \n", - "2 Desconto Direto NaN Não PERF. FEMININA NaN \n", - "3 Desconto Direto NaN Não PERF. FEMININA NaN \n", - "4 Desconto Direto NaN Não PERF. FEMININA NaN \n", - ".. ... ... ... ... ... \n", - "345 Desconto Direto Ciclo todo Não CABELOS NaN \n", - "346 Desconto Direto Ciclo todo Não CABELOS NaN \n", - "347 Desconto Direto Ciclo todo Não CABELOS NaN \n", - "348 Desconto Direto Ciclo todo Não CABELOS NaN \n", - "349 Desconto Direto Ciclo todo Não CABELOS NaN \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", "\n", - " Código do Item ... 0.34.2 0.35.2 0.2.3 0.25.3 0.28.3 0.3.3 0.32.3 \\\n", - "0 85268 ... 59.47 61.22 0.2 0.25 0.28 0.3 0.32 \n", - "1 93541 ... 30.57 31.47 0.2 0.25 0.28 0.3 0.32 \n", - "2 53138 ... 35.67 36.72 0.2 0.25 0.28 0.3 0.32 \n", - "3 50762 ... 23.43 24.12 0.2 0.25 0.28 0.3 0.32 \n", - "4 49803 ... 28.53 29.37 0.2 0.25 0.28 0.3 0.32 \n", - ".. ... ... ... ... ... ... ... ... ... \n", - "345 53094 ... 0.00 0.00 NaN NaN NaN NaN NaN \n", - "346 55803 ... 0.00 0.00 NaN NaN NaN NaN NaN \n", - "347 93106 ... 0.00 0.00 NaN NaN NaN NaN NaN \n", - "348 93105 ... 0.00 0.00 NaN NaN NaN NaN NaN \n", - "349 55805 ... 0.00 0.00 NaN NaN NaN NaN NaN \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", "\n", - " 0.34.3 0.35.3 BSO \n", - "0 0.34 0.35 Sim \n", - "1 0.34 0.35 Sim \n", - "2 0.34 0.35 Sim \n", - "3 0.34 0.35 Sim \n", - "4 0.34 0.35 Sim \n", - ".. ... ... ... \n", - "345 NaN NaN Sim \n", - "346 NaN NaN Sim \n", - "347 NaN NaN Sim \n", - "348 NaN NaN Sim \n", - "349 NaN NaN Sim \n", + " BSO \n", + "0 Sim \n", + "1 Sim \n", + "2 Sim \n", + "3 Sim \n", + "4 Sim \n", "\n", - "[350 rows x 47 columns]" + "[5 rows x 47 columns]" ] }, - "execution_count": 23, + "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_tabela" + "df_tabela.head()" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 154, "metadata": {}, "outputs": [], "source": [ @@ -1285,51 +1099,683 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 155, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_6076\\2370731253.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_tabela['Código do Item'] = df_tabela['Código do Item'].astype(str).str.replace(\".0\",\"\",regex=False)\n" - ] - } - ], + "outputs": [], "source": [ "df_tabela['Código do Item'] = df_tabela['Código do Item'].astype(str).str.replace(\".0\",\"\",regex=False)" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 156, "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\joao.herculano\\AppData\\Local\\Temp\\ipykernel_6076\\1166075419.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_tabela['MATCH'] = 1\n" - ] + "data": { + "text/html": [ + "| \n", + " | Ciclo | \n", + "Veiculo | \n", + "Tipo de Promoção | \n", + "Estratégia de Promoção | \n", + "Tipo_mecanica | \n", + "Promo Período Limitado? | \n", + "EAM | \n", + "Categoria | \n", + "Cód. Combo | \n", + "Código do Item | \n", + "Descrição do Item | \n", + "Chamada Promocional | \n", + "Valor do Guia | \n", + "Preço Promocionado | \n", + "% de Desconto | \n", + "RE compra por | \n", + "RE Vende por | \n", + "RE lucra (R$) | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 1 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "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", + "
| 2 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "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", + "
| 3 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "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", + "
| 4 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "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", + "
| \n", + " | Ciclo | \n", + "Veiculo | \n", + "Tipo de Promoção | \n", + "Estratégia de Promoção | \n", + "Tipo_mecanica | \n", + "Promo Período Limitado? | \n", + "EAM | \n", + "Categoria | \n", + "Cód. Combo | \n", + "Código do Item | \n", + "Descrição do Item | \n", + "Chamada Promocional | \n", + "Valor do Guia | \n", + "Preço Promocionado | \n", + "% de Desconto | \n", + "RE compra por | \n", + "RE Vende por | \n", + "RE lucra (R$) | \n", + "SKU | \n", + "SKU_FINAL | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 1 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 2 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 3 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 4 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| \n", + " | Ciclo | \n", + "Veiculo | \n", + "Tipo de Promoção | \n", + "Estratégia de Promoção | \n", + "Tipo_mecanica | \n", + "Promo Período Limitado? | \n", + "EAM | \n", + "Categoria | \n", + "Cód. Combo | \n", + "Código do Item | \n", + "Descrição do Item | \n", + "Chamada Promocional | \n", + "Valor do Guia | \n", + "Preço Promocionado | \n", + "% de Desconto | \n", + "RE compra por | \n", + "RE Vende por | \n", + "RE lucra (R$) | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 1 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 2 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 3 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| 4 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \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", + "
| \n", + " | Ciclo | \n", + "Veiculo | \n", + "Tipo de Promoção | \n", + "Estratégia de Promoção | \n", + "Tipo_mecanica | \n", + "Promo Período Limitado? | \n", + "EAM | \n", + "Categoria | \n", + "Cód. Combo | \n", + "Código do Item | \n", + "... | \n", + "Preço Promocionado | \n", + "% de Desconto | \n", + "RE compra por | \n", + "RE Vende por | \n", + "RE lucra (R$) | \n", + "MATCH | \n", + "PDV | \n", + "UF | \n", + "DESCRIÇÃO PDV | \n", + "ANALISTA | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "Não | \n", + "PERF. FEMININA | \n", + "NaN | \n", + "56572 | \n", + "... | \n", + "174.9 | \n", + "0.255 | \n", + "122.43 | \n", + "174.9 | \n", + "52.47 | \n", + "1 | \n", + "20968 | \n", + "SE | \n", + "HIB ITABAIANINHA | \n", + "MARCYARA | \n", + "
| 1 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "Não | \n", + "PERF. FEMININA | \n", + "NaN | \n", + "56572 | \n", + "... | \n", + "174.9 | \n", + "0.255 | \n", + "122.43 | \n", + "174.9 | \n", + "52.47 | \n", + "1 | \n", + "20969 | \n", + "AL | \n", + "HIB MARECHAL DEOD | \n", + "HARY | \n", + "
| 2 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "Não | \n", + "PERF. FEMININA | \n", + "NaN | \n", + "56572 | \n", + "... | \n", + "174.9 | \n", + "0.255 | \n", + "122.43 | \n", + "174.9 | \n", + "52.47 | \n", + "1 | \n", + "20970 | \n", + "BA | \n", + "ER SAO SEBASTIAO | \n", + "DARLIN | \n", + "
| 3 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "Não | \n", + "PERF. FEMININA | \n", + "NaN | \n", + "56572 | \n", + "... | \n", + "174.9 | \n", + "0.255 | \n", + "122.43 | \n", + "174.9 | \n", + "52.47 | \n", + "1 | \n", + "20986 | \n", + "BA | \n", + "HIB OLINDINA | \n", + "LUCAS | \n", + "
| 4 | \n", + "202513 | \n", + "Guia CF | \n", + "Promoção CF | \n", + "Movimentar Flow | \n", + "Desconto Direto | \n", + "NaN | \n", + "Não | \n", + "PERF. FEMININA | \n", + "NaN | \n", + "56572 | \n", + "... | \n", + "174.9 | \n", + "0.255 | \n", + "122.43 | \n", + "174.9 | \n", + "52.47 | \n", + "1 | \n", + "20988 | \n", + "BA | \n", + "HIB QUEIMADAS | \n", + "DARLIN | \n", + "
5 rows × 23 columns
\n", + "| \n", + " | SKU_FINAL | \n", + "pdv | \n", + "
|---|---|---|
| 0 | \n", + "47814 | \n", + "20968 | \n", + "
| 1 | \n", + "47888 | \n", + "20968 | \n", + "
| 2 | \n", + "49459 | \n", + "20968 | \n", + "
| 3 | \n", + "49543 | \n", + "20968 | \n", + "
| 4 | \n", + "50093 | \n", + "20968 | \n", + "
| \n", + " | pdv | \n", + "SKU | \n", + "SKU_FINAL | \n", + "ESTOQUE ATUAL | \n", + "ESTOQUE EM TRANSITO | \n", + "PEDIDO PENDENTE | \n", + "Curva | \n", + "CATEGORIA | \n", + "DiasSemVenda | \n", + "nextcycleprojection | \n", + "secondtonextcycleprojection | \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", + "
| 1857 | \n", + "20969 | \n", + "93403 | \n", + "93403 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "53 | \n", + "1 | \n", + "0 | \n", + "
| 5032 | \n", + "20991 | \n", + "93403 | \n", + "93403 | \n", + "5 | \n", + "0 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "60 | \n", + "9 | \n", + "2 | \n", + "
| 5282 | \n", + "20992 | \n", + "93403 | \n", + "93403 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "E | \n", + "INFANTIL | \n", + "0 | \n", + "15 | \n", + "3 | \n", + "
| 7541 | \n", + "20995 | \n", + "93403 | \n", + "93403 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "
| 8382 | \n", + "20996 | \n", + "93403 | \n", + "93403 | \n", + "1 | \n", + "12 | \n", + "17 | \n", + "C | \n", + "INFANTIL | \n", + "3 | \n", + "10 | \n", + "2 | \n", + "
| 10303 | \n", + "20997 | \n", + "93403 | \n", + "93403 | \n", + "9 | \n", + "3 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "2 | \n", + "24 | \n", + "5 | \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", + "
| 13097 | \n", + "21278 | \n", + "93403 | \n", + "93403 | \n", + "5 | \n", + "0 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "2 | \n", + "15 | \n", + "2 | \n", + "
| 13702 | \n", + "21495 | \n", + "93403 | \n", + "93403 | \n", + "2 | \n", + "0 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "111 | \n", + "3 | \n", + "1 | \n", + "
| 14577 | \n", + "22541 | \n", + "93403 | \n", + "93403 | \n", + "0 | \n", + "2 | \n", + "0 | \n", + "C | \n", + "INFANTIL | \n", + "81 | \n", + "5 | \n", + "1 | \n", + "
| 18488 | \n", + "24255 | \n", + "93403 | \n", + "93403 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "E | \n", + "INFANTIL | \n", + "0 | \n", + "15 | \n", + "3 | \n", + "
| \n", + " | pdv | \n", + "SKU | \n", + "SKU_FINAL | \n", + "ESTOQUE ATUAL | \n", + "ESTOQUE EM TRANSITO | \n", + "PEDIDO PENDENTE | \n", + "Curva | \n", + "CATEGORIA | \n", + "DiasSemVenda | \n", + "nextcycleprojection | \n", + "... | \n", + "Preço Promocionado | \n", + "% de Desconto | \n", + "RE compra por | \n", + "RE Vende por | \n", + "RE lucra (R$) | \n", + "MATCH | \n", + "PDV | \n", + "UF | \n", + "DESCRIÇÃO PDV | \n", + "ANALISTA | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "20968 | \n", + "56572 | \n", + "56572 | \n", + "35 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20968 | \n", + "SE | \n", + "HIB ITABAIANINHA | \n", + "MARCYARA | \n", + "
| 1 | \n", + "20969 | \n", + "56572 | \n", + "56572 | \n", + "30 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20969 | \n", + "AL | \n", + "HIB MARECHAL DEOD | \n", + "HARY | \n", + "
| 2 | \n", + "20970 | \n", + "56572 | \n", + "56572 | \n", + "81 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20970 | \n", + "BA | \n", + "ER SAO SEBASTIAO | \n", + "DARLIN | \n", + "
| 3 | \n", + "20986 | \n", + "56572 | \n", + "56572 | \n", + "71 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20986 | \n", + "BA | \n", + "HIB OLINDINA | \n", + "LUCAS | \n", + "
| 4 | \n", + "20988 | \n", + "56572 | \n", + "56572 | \n", + "51 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20988 | \n", + "BA | \n", + "HIB QUEIMADAS | \n", + "DARLIN | \n", + "
| 5 | \n", + "20989 | \n", + "56572 | \n", + "56572 | \n", + "95 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20989 | \n", + "BA | \n", + "HIB ENTRE RIOS | \n", + "MARCYARA | \n", + "
| 6 | \n", + "20991 | \n", + "56572 | \n", + "56572 | \n", + "35 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20991 | \n", + "AL | \n", + "HIB CAMPO ALEGRE | \n", + "HARY | \n", + "
| 7 | \n", + "20992 | \n", + "56572 | \n", + "56572 | \n", + "149 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20992 | \n", + "BA | \n", + "ER CONC COITE | \n", + "JEFFERSON | \n", + "
| 8 | \n", + "20993 | \n", + "56572 | \n", + "56572 | \n", + "0 | \n", + "291 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20993 | \n", + "BA | \n", + "ER CANDEIAS | \n", + "DARLIN | \n", + "
| 9 | \n", + "20994 | \n", + "56572 | \n", + "56572 | \n", + "218 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20994 | \n", + "BA | \n", + "ER SIMOES FILHO | \n", + "LUCAS | \n", + "
| 10 | \n", + "20995 | \n", + "56572 | \n", + "56572 | \n", + "55 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20995 | \n", + "SE | \n", + "ER LAGARTO | \n", + "MARCYARA | \n", + "
| 11 | \n", + "20996 | \n", + "56572 | \n", + "56572 | \n", + "69 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20996 | \n", + "AL | \n", + "ER ANTARES | \n", + "LAIS | \n", + "
| 12 | \n", + "20997 | \n", + "56572 | \n", + "56572 | \n", + "231 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20997 | \n", + "AL | \n", + "ER PITANGUINHA | \n", + "LAIS | \n", + "
| 13 | \n", + "20998 | \n", + "56572 | \n", + "56572 | \n", + "212 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "20998 | \n", + "AL | \n", + "CD SERRARIA | \n", + "VA | \n", + "
| 14 | \n", + "20999 | \n", + "56572 | \n", + "56572 | \n", + "127 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "20999 | \n", + "BA | \n", + "HIB ESPLANADA | \n", + "MARCYARA | \n", + "
| 15 | \n", + "21000 | \n", + "56572 | \n", + "56572 | \n", + "57 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "21000 | \n", + "BA | \n", + "HIB SANTALUZ | \n", + "DARLIN | \n", + "
| 16 | \n", + "21001 | \n", + "56572 | \n", + "56572 | \n", + "70 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "21001 | \n", + "BA | \n", + "HIB RIO REAL | \n", + "LUCAS | \n", + "
| 17 | \n", + "21278 | \n", + "56572 | \n", + "56572 | \n", + "81 | \n", + "0 | \n", + "None | \n", + "B | \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", + "1 | \n", + "21278 | \n", + "SE | \n", + "VD SOCORRO | \n", + "JEFFERSON | \n", + "
| 18 | \n", + "21375 | \n", + "56572 | \n", + "56572 | \n", + "107 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "21375 | \n", + "BA | \n", + "IPIRA HB | \n", + "DARLIN | \n", + "
| 19 | \n", + "21383 | \n", + "56572 | \n", + "56572 | \n", + "95 | \n", + "0 | \n", + "None | \n", + "E | \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", + "1 | \n", + "21383 | \n", + "BA | \n", + "CAPIM GROSSO ER | \n", + "DARLIN | \n", + "
20 rows × 34 columns
\n", + "| \n", + " | PDV | \n", + "SKU | \n", + "DESCRICAO | \n", + "C202411 | \n", + "C202412 | \n", + "C202413 | \n", + "C202414 | \n", + "C202415 | \n", + "C202416 | \n", + "C202417 | \n", "... | \n", - "C202502 | \n", "C202503 | \n", "C202504 | \n", "C202505 | \n", @@ -1879,93 +3897,94 @@ "C202509 | \n", "C202510 | \n", "C202511 | \n", + "C202512 | \n", "||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", - "20968 | \n", - "93541 | \n", - "23 | \n", - "0 | \n", - "0 | \n", - "B | \n", - "PERFUMARIA | \n", - "13.0 | \n", + "11201 | \n", + "1004 | \n", + "FLORATTA DES COL MY BLUE 75ml | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", - "9.0 | \n", - "3.0 | \n", - "1.0 | \n", - "1.0 | \n", - "21.0 | \n", - "3.0 | \n", - "1.0 | \n", - "13.0 | \n", - "1.0 | \n", - "1.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", + "0.0 | \n", "
| 1 | \n", - "20969 | \n", - "93541 | \n", - "27 | \n", - "0 | \n", - "0 | \n", - "B | \n", - "PERFUMARIA | \n", - "3.0 | \n", + "11201 | \n", + "1005 | \n", + "DEM FLORATTA DES COL MY BLUE 4ml | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", - "18.0 | \n", - "3.0 | \n", - "8.0 | \n", - "9.0 | \n", - "23.0 | \n", - "4.0 | \n", - "9.0 | \n", - "2.0 | \n", - "11.0 | \n", - "1.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", + "0.0 | \n", "
| 2 | \n", - "20991 | \n", - "93541 | \n", - "20 | \n", - "0 | \n", - "0 | \n", - "B | \n", - "PERFUMARIA | \n", - "5.0 | \n", + "11201 | \n", + "1078 | \n", + "MATCH SRUM CAP POS QUIMICA 50ml | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", - "12.0 | \n", - "1.0 | \n", - "9.0 | \n", - "14.0 | \n", - "16.0 | \n", - "6.0 | \n", - "8.0 | \n", - "26.0 | \n", - "9.0 | \n", - "1.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", + "0.0 | \n", "
| 3 | \n", - "20992 | \n", - "93541 | \n", - "178 | \n", - "0 | \n", - "0 | \n", - "E | \n", - "PERFUMARIA | \n", + "11201 | \n", + "1296 | \n", + "PMPCK THE BLEND DES ANTIT AER 2x75g | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", "0.0 | \n", "0.0 | \n", - "121.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", @@ -1980,159 +3999,15 @@ "||||||||||||||||||
| 4 | \n", - "20995 | \n", - "93541 | \n", - "67 | \n", - "0 | \n", - "0 | \n", - "B | \n", - "PERFUMARIA | \n", - "3.0 | \n", - "14.0 | \n", - "53.0 | \n", - "... | \n", - "12.0 | \n", - "13.0 | \n", - "4.0 | \n", - "10.0 | \n", - "43.0 | \n", - "8.0 | \n", - "6.0 | \n", - "27.0 | \n", - "1.0 | \n", - "2.0 | \n", - "||||||||||||||||||
| ... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "||||||||||||||||||
| 3207 | \n", - "20998 | \n", - "53094 | \n", - "275 | \n", - "0 | \n", - "0 | \n", - "A | \n", - "CABELOS | \n", + "11201 | \n", + "1302 | \n", + "PMPCK LILY DES ANTIT AER 2x75g | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", - "... | \n", - "190.0 | \n", - "208.0 | \n", - "48.0 | \n", - "47.0 | \n", - "179.0 | \n", - "31.0 | \n", - "44.0 | \n", - "18.0 | \n", - "180.0 | \n", - "69.0 | \n", - "|||||||||||||||
| 3208 | \n", - "21278 | \n", - "53094 | \n", - "38 | \n", - "0 | \n", - "0 | \n", - "A | \n", - "CABELOS | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", - "... | \n", - "27.0 | \n", - "15.0 | \n", - "24.0 | \n", - "13.0 | \n", - "71.0 | \n", - "13.0 | \n", - "8.0 | \n", - "20.0 | \n", - "30.0 | \n", - "21.0 | \n", - "||||||||||||||||||
| 3209 | \n", - "21495 | \n", - "53094 | \n", - "4 | \n", - "0 | \n", - "0 | \n", - "A | \n", - "CABELOS | \n", - "2.0 | \n", - "0.0 | \n", - "0.0 | \n", - "... | \n", - "9.0 | \n", - "0.0 | \n", - "0.0 | \n", - "5.0 | \n", - "5.0 | \n", - "3.0 | \n", - "2.0 | \n", - "5.0 | \n", - "6.0 | \n", - "1.0 | \n", - "||||||||||||||||||
| 3210 | \n", - "22541 | \n", - "53094 | \n", - "46 | \n", - "0 | \n", - "0 | \n", - "A | \n", - "CABELOS | \n", - "2.0 | \n", - "0.0 | \n", - "0.0 | \n", - "... | \n", - "9.0 | \n", - "6.0 | \n", - "4.0 | \n", - "10.0 | \n", - "24.0 | \n", - "42.0 | \n", - "4.0 | \n", - "3.0 | \n", - "9.0 | \n", - "8.0 | \n", - "||||||||||||||||||
| 3211 | \n", - "24255 | \n", - "53094 | \n", - "4 | \n", - "56 | \n", - "25 | \n", - "E | \n", - "CABELOS | \n", - "0.0 | \n", - "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", @@ -2148,83 +4023,61 @@ "
3212 rows × 66 columns
\n", + "5 rows × 22 columns
\n", "| \n", + " | pdv | \n", + "SKU | \n", + "SKU_FINAL | \n", + "ESTOQUE ATUAL | \n", + "ESTOQUE EM TRANSITO | \n", + "PEDIDO PENDENTE | \n", + "Curva | \n", + "CATEGORIA | \n", + "DiasSemVenda | \n", + "nextcycleprojection | \n", + "... | \n", + "C202504 | \n", + "C202505 | \n", + "C202506 | \n", + "C202507 | \n", + "C202508 | \n", + "C202509 | \n", + "C202510 | \n", + "C202511 | \n", + "C202512 | \n", + "PICO DE VENDAS 17CICLOS | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "20968 | \n", + "56572 | \n", + "56572 | \n", + "35 | \n", + "0 | \n", + "None | \n", + "B | \n", + "PERFUMARIA | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.0 | \n", + "9.0 | \n", + "4.0 | \n", + "14.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "0.0 | \n", + "0.0 | \n", + "38.0 | \n", + "
| 1 | \n", + "20969 | \n", + "56572 | \n", + "56572 | \n", + "30 | \n", + "0 | \n", + "None | \n", + "B | \n", + "PERFUMARIA | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "2.0 | \n", + "37.0 | \n", + "34.0 | \n", + "14.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "1.0 | \n", + "0.0 | \n", + "37.0 | \n", + "
| 2 | \n", + "20970 | \n", + "56572 | \n", + "56572 | \n", + "81 | \n", + "0 | \n", + "None | \n", + "E | \n", + "PERFUMARIA | \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", + "NaN | \n", + "0.0 | \n", + "
| 3 | \n", + "20986 | \n", + "56572 | \n", + "56572 | \n", + "71 | \n", + "0 | \n", + "None | \n", + "E | \n", + "PERFUMARIA | \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", + "0.0 | \n", + "0.0 | \n", + "
| 4 | \n", + "20988 | \n", + "56572 | \n", + "56572 | \n", + "51 | \n", + "0 | \n", + "None | \n", + "E | \n", + "PERFUMARIA | \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", + "0.0 | \n", + "0.0 | \n", + "
5 rows × 63 columns
\n", + "| \n", + " | PDV | \n", + "SKU | \n", + "SKU2 | \n", + "SKU_FINAL | \n", + "DESCRICAO | \n", + "VENDAS_CICLO | \n", + "Ciclo | \n", + "
|---|---|---|---|---|---|---|---|
| 0 | \n", + "20992 | \n", + "51021 | \n", + "- | \n", + "51021 | \n", + "\"QDB BLUSH LIQ GUARANA 6 | \n", + "8.0 | \n", + "C202416 | \n", + "
| 1 | \n", + "20057 | \n", + "4510 | \n", + "- | \n", + "4510 | \n", + "REF BOTIK CR FAC FIRM AC/HIALUR 40g | \n", + "2.0 | \n", + "C202417 | \n", + "
| 2 | \n", + "20997 | \n", + "1808 | \n", + "- | \n", + "1808 | \n", + "MAKE B BAS LIQ MATE SALICYLIC 200 30g | \n", + "1.0 | \n", + "C202504 | \n", + "
| 3 | \n", + "12823 | \n", + "56804 | \n", + "- | \n", + "56804 | \n", + "MATCH MASC CAP SCIENCE RECONS V2 250g | \n", + "2.0 | \n", + "C202511 | \n", + "
| 4 | \n", + "20998 | \n", + "83836 | \n", + "- | \n", + "83836 | \n", + "OUI CREM DES HID CPO MADELEINE 200g | \n", + "8.0 | \n", + "C202501 | \n", + "
| \n", + " | PDV | \n", + "SKU_FINAL | \n", + "DESCRICAO | \n", + "C202412 | \n", + "C202413 | \n", + "C202414 | \n", + "C202415 | \n", + "C202416 | \n", + "C202417 | \n", + "C202501 | \n", + "... | \n", + "C202503 | \n", + "C202504 | \n", + "C202505 | \n", + "C202506 | \n", + "C202507 | \n", + "C202508 | \n", + "C202509 | \n", + "C202510 | \n", + "C202511 | \n", + "C202512 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "12522 | \n", + "1004 | \n", + "FLORATTA DES COL MY BLUE 75ml | \n", + "0.0 | \n", + "15.0 | \n", + "2.0 | \n", + "3.0 | \n", + "56.0 | \n", + "6.0 | \n", + "1.0 | \n", + "... | \n", + "1.0 | \n", + "5.0 | \n", + "12.0 | \n", + "7.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 1 | \n", + "12522 | \n", + "1080 | \n", + "INTENSE GLOS LAB BUBBAL TUT/FRUT 5ml | \n", + "2.0 | \n", + "0.0 | \n", + "4.0 | \n", + "0.0 | \n", + "10.0 | \n", + "2.0 | \n", + "2.0 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "7.0 | \n", + "17.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 2 | \n", + "12522 | \n", + "1296 | \n", + "PMPCK THE BLEND DES ANTIT AER 2x75g | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.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", + "0.0 | \n", + "0.0 | \n", + "
| 3 | \n", + "12522 | \n", + "1302 | \n", + "PMPCK LILY DES ANTIT AER 2x75g | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "6.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "3.0 | \n", + "4.0 | \n", + "0.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 4 | \n", + "12522 | \n", + "1314 | \n", + "PMPCK ZAAD DES ANTIT AER 2x75g | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.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", + "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", + "
| 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", + "
| 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", + "
| 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", + "
| 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", + "
| 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", + "
142991 rows × 21 columns
\n", + "| \n", + " | PDV | \n", + "SKU | \n", + "DESCRICAO | \n", + "curva | \n", + "categoria | \n", + "proj_mar | \n", + "proj_mar+1 | \n", + "ESTOQUE ATUAL | \n", + "ESTOQUE EM TRANSITO | \n", + "PEDIDO PENDENTE | \n", + "DDV PREVISTO | \n", + "preço | \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", + "4 | \n", + "0 | \n", + "9,20 | \n", + "42.54 | \n", + "
| \n", + " | PDV | \n", + "SKU | \n", + "curva | \n", + "categoria | \n", + "proj_mar | \n", + "proj_mar+1 | \n", + "ESTOQUE ATUAL | \n", + "ESTOQUE EM TRANSITO | \n", + "PEDIDO PENDENTE | \n", + "DDV PREVISTO | \n", + "... | \n", + "C202503 | \n", + "C202504 | \n", + "C202505 | \n", + "C202506 | \n", + "C202507 | \n", + "C202508 | \n", + "C202509 | \n", + "C202510 | \n", + "C202511 | \n", + "C202512 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 76 | \n", + "12522 | \n", + "48060 | \n", + "A | \n", + "CUIDADOS COM A PELE | \n", + "14.0 | \n", + "19.0 | \n", + "42.0 | \n", + "0.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", + "
| 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", + "
| 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", + "... | \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", + "
| 3362 | \n", + "12820 | \n", + "48060 | \n", + "A | \n", + "CUIDADOS COM A PELE | \n", + "11.0 | \n", + "13.0 | \n", + "40.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.49 | \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", + "
| 4320 | \n", + "12823 | \n", + "48060 | \n", + "A | \n", + "CUIDADOS COM A PELE | \n", + "10.0 | \n", + "12.0 | \n", + "20.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.46 | \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", + "
5 rows × 31 columns
\n", + "332 rows × 24 columns
\n", + "0 rows × 24 columns
\n", "" ], "text/plain": [ - " Ciclo Região Canal Código \\\n", - "0 202511 NNE VD 74438 \n", - "7440 202511 NNE VD 57210 \n", - "12624 202511 NNE VD 57211 \n", - "17953 202511 NNE VD 57209 \n", - "23578 202511 NNE VD 57208 \n", - "... ... ... ... ... \n", - "1918086 202511 NNE Loja 55477 \n", - "1918662 202511 NNE Ecomm | VD 83961 \n", - "1926362 202511 NNE Ecomm | VD 73614 \n", - "1931987 202511 NNE Ecomm | Loja 52948 \n", - "1937171 202511 NNE Ecomm | Loja 58987 \n", + "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", - " Descrição IAF Tipo de pedido Foco \\\n", - "0 ARBO DES COL 100ml V4 Não Semanal Não \n", - "7440 AU MIGOS PETS BANHO SECO ADULTOS 240ml Não Semanal Não \n", - "12624 AU MIGOS PETS COL ADULTOS 60ml Não Semanal Não \n", - "17953 AU MIGOS PETS COL FILHOTES 60ml Não Semanal Não \n", - "23578 AU MIGOS PETS COND ADULTOS 400ml Não Semanal Não \n", - "... ... ... ... ... \n", - "1918086 SCH BOTIK SERUM FAC RESV/SILICIO VDA 2ml Não Semanal Não \n", - "1918662 ARBO DES BDY SPR 100ml V6 Não Semanal Não \n", - "1926362 COFFEE DES COL DUO MAN 100ml Não Semanal Não \n", - "1931987 NSPA CREM ESF CPO AMEI DOUR 200g Não Semanal Não \n", - "1937171 NSPA OL BIF DES HID CPO UVA MERL 200ml Não Semanal Não \n", - "\n", - " Unidade de negócio Marca ... Catálogo Tipo de produto \\\n", - "0 BOT ARBO ... Sim REGULAR \n", - "7440 BOT AU.MIGOS PETS ... Sim REGULAR \n", - "12624 BOT AU.MIGOS PETS ... Sim REGULAR \n", - "17953 BOT AU.MIGOS PETS ... Sim REGULAR \n", - "23578 BOT AU.MIGOS PETS ... Sim REGULAR \n", - "... ... ... ... ... ... \n", - "1918086 BOT BOTIK ... Sim REGULAR \n", - "1918662 BOT ARBO ... Sim REGULAR \n", - "1926362 BOT COFFEE ... Sim REGULAR \n", - "1931987 BOT NATIVA SPA ... Sim REGULAR \n", - "1937171 BOT NATIVA SPA ... Sim REGULAR \n", - "\n", - " Ação consumidor \\\n", - "0 NaN \n", - "7440 NaN \n", - "12624 NaN \n", - "17953 NaN \n", - "23578 NaN \n", - "... ... \n", - "1918086 [BOT] AÇÃO DE FLUXO BOTIK CICACERAMIDAS COM DE... \n", - "1918662 [ECOMM] PAIS 2025 - COMBO ARBO - NNE \n", - "1926362 [ECOMM] PAIS 2025 - COMBO COFFEE E BOTMEN \n", - "1931987 [LOJA/ECOMM] ITENS SELECIONADOS DE NATIVA SPA ... \n", - "1937171 [LOJA/ECOMM] ITENS SELECIONADOS DE NATIVA SPA ... \n", - "\n", - " Percentual de desconto consumidor \\\n", - "0 0,00 \n", - "7440 0,00 \n", - "12624 0,00 \n", - "17953 0,00 \n", - "23578 0,00 \n", - "... ... \n", - "1918086 10,00 \n", - "1918662 21,49 \n", - "1926362 18,67 \n", - "1931987 7,82 \n", - "1937171 14,88 \n", - "\n", - " Ação revendedor \\\n", - "0 VD - FAVORITOS PARA INÍCIOS ARBO - C11 \n", - "7440 VD - LUCRATIVIDADE BASE AUMIGOS - BRONZE | VD ... \n", - "12624 VD - LUCRATIVIDADE BASE AUMIGOS - BRONZE | VD ... \n", - "17953 VD - LUCRATIVIDADE BASE AUMIGOS - BRONZE | VD ... \n", - "23578 VD - LUCRATIVIDADE BASE AUMIGOS - BRONZE | VD ... \n", - "... ... \n", - "1918086 [BOT] AÇÃO DE FLUXO BOTIK CICACERAMIDAS COM DE... \n", - "1918662 VD - FAVORITOS PARA INÍCIOS BODY SPRAY ARBO - C11 \n", - "1926362 VD - COFFEE PERFUMARIA MASCULINA - LUCRO EXTRA... \n", - "1931987 [LOJA/ECOMM] ITENS SELECIONADOS DE NATIVA SPA ... \n", - "1937171 [LOJA/ECOMM] ITENS SELECIONADOS DE NATIVA SPA ... \n", - "\n", - " Percentual de desconto revendedor Sortimento P \\\n", - "0 35,00 Sortido \n", - "7440 10,00 | 13,00 | 15,00 | 17,00 | 19,00 | 20,00 ... Sortido \n", - "12624 10,00 | 13,00 | 15,00 | 17,00 | 19,00 | 20,00 ... Sortido \n", - "17953 10,00 | 13,00 | 15,00 | 17,00 | 19,00 | 20,00 ... Sortido \n", - "23578 10,00 | 13,00 | 15,00 | 17,00 | 19,00 | 20,00 ... Sortido \n", - "... ... ... \n", - "1918086 0,00 Sortido \n", - "1918662 35,00 Sortido \n", - "1926362 20,00 | 25,00 | 30,00 Sortido \n", - "1931987 0,00 Não sortido \n", - "1937171 0,00 Sortido \n", - "\n", - " Sortimento M Sortimento G MATCH \n", - "0 Sortido Sortido 1 \n", - "7440 Sortido Sortido 1 \n", - "12624 Sortido Sortido 1 \n", - "17953 Sortido Sortido 1 \n", - "23578 Sortido Sortido 1 \n", - "... ... ... ... \n", - "1918086 Sortido Sortido 1 \n", - "1918662 Sortido Sortido 1 \n", - "1926362 Sortido Sortido 1 \n", - "1931987 Sortido Sortido 1 \n", - "1937171 Sortido Sortido 1 \n", - "\n", - "[332 rows x 24 columns]" + "[0 rows x 24 columns]" ] }, - "execution_count": 20, + "execution_count": 223, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_tabela" + "df_tabela[df_tabela['Código']=='48060']" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 224, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(47509, 31)" + ] + }, + "execution_count": 224, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "df_estoque = df_estoque.drop(columns=['DESCRICAO', 'CATEGORIA', 'CLASSE', 'FASES PRODUTO',\n", - " 'LANCAMENTO', 'DESATIVACAO','COBERTURA ALVO',\n", - " 'ESTOQUE DE SEGURANCA','COBERTURA PROJETADA', \n", - " 'Pasta_Origem'])" + "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": 22, + "execution_count": 225, "metadata": {}, "outputs": [ { @@ -865,295 +1331,103 @@ " \n", "454604 rows × 11 columns
\n", + "0 rows × 31 columns
\n", "" ], "text/plain": [ - " SKU SKU_PARA PDV ESTOQUE ATUAL ESTOQUE EM TRANSITO \\\n", - "0 94394 - 20968 0.0 0.0 \n", - "1 94394 - 20969 0.0 0.0 \n", - "2 94394 - 20970 0.0 0.0 \n", - "3 94394 - 20986 0.0 0.0 \n", - "4 94394 - 20988 0.0 0.0 \n", - "... ... ... ... ... ... \n", - "454599 4438 - 910291 9.0 10.0 \n", - "454600 4431 - 21007 0.0 0.0 \n", - "454601 4431 - 910173 2.0 10.0 \n", - "454602 4431 - 910291 1.0 10.0 \n", - "454603 1594 - 21007 2.0 0.0 \n", + "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", - " PEDIDO PENDENTE DDV PREVISTO COBERTURA ATUAL \\\n", - "0 0.0 NaN NaN \n", - "1 0.0 NaN NaN \n", - "2 0.0 NaN NaN \n", - "3 0.0 NaN NaN \n", - "4 0.0 NaN NaN \n", - "... ... ... ... \n", - "454599 0.0 0.78 11.0 \n", - "454600 0.0 NaN NaN \n", - "454601 0.0 0.40 5.0 \n", - "454602 0.0 0.78 1.0 \n", - "454603 0.0 NaN NaN \n", - "\n", - " COBERTURA ATUAL + TRANSITO Arquivo_Origem SKU_FINAL \n", - "0 NaN BOT.csv 94394 \n", - "1 NaN BOT.csv 94394 \n", - "2 NaN BOT.csv 94394 \n", - "3 NaN BOT.csv 94394 \n", - "4 NaN BOT.csv 94394 \n", - "... ... ... ... \n", - "454599 24.0 QDB.csv 4438 \n", - "454600 NaN QDB.csv 4431 \n", - "454601 30.0 QDB.csv 4431 \n", - "454602 14.0 QDB.csv 4431 \n", - "454603 NaN QDB.csv 1594 \n", - "\n", - "[454604 rows x 11 columns]" + "[0 rows x 31 columns]" ] }, - "execution_count": 22, + "execution_count": 225, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_estoque" + "df_final[df_final['Código']=='48060'].head()" ] }, { "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\joao.herculano\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\openpyxl\\styles\\stylesheet.py:237: UserWarning: Workbook contains no default style, apply openpyxl's default\n", - " warn(\"Workbook contains no default style, apply openpyxl's default\")\n" - ] - } - ], - "source": [ - "df_bi_preco = pd.read_excel(r\"C:\\Users\\joao.herculano\\GRUPO GINSENG\\Assistência Suprimentos - 2025\\SUPRIMENTOS\\DB_PROMOÇÕES\\BOTICARIO\\C11\\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", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, + "execution_count": 226, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(25232, 31)" + "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" ] }, - "execution_count": 24, + "execution_count": 226, "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" + "df_final['PDV'].value_counts()" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 227, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(25232, 62)" + "(49398, 61)" ] }, - "execution_count": 25, + "execution_count": 227, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final['PDV'] = df_final['PDV'].astype('Int64')\n", - "df_final['Código'] = df_final['Código'].astype('Int64')\n", + "df_final['PDV'] = df_final['PDV'].astype('str')\n", + "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", @@ -1162,27 +1436,248 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 228, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "| \n", + " | Ciclo | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "C202503 | \n", + "C202504 | \n", + "C202505 | \n", + "C202506 | \n", + "C202507 | \n", + "C202508 | \n", + "C202509 | \n", + "C202510 | \n", + "C202511 | \n", + "C202512 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \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", + "
| 17862 | \n", + "C202514 | \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", + "... | \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", + "
| 17863 | \n", + "C202514 | \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", + "... | \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", + "
| 17864 | \n", + "C202514 | \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", + "... | \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", + "
| 17865 | \n", + "C202514 | \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", + "... | \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", + "
5 rows × 61 columns
\n", + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "C202508 | \n", + "C202509 | \n", + "C202510 | \n", + "C202511 | \n", + "C202512 | \n", + "Ciclo_y | \n", + "INICIO CICLO | \n", + "FIM CICLO | \n", + "DURAÇÃO | \n", + "dias_ate_inicio | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \n", + "19.0 | \n", + "23.0 | \n", + "3.0 | \n", + "19.0 | \n", + "10.0 | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "
| 17862 | \n", + "C202514 | \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", + "... | \n", + "79.0 | \n", + "106.0 | \n", + "44.0 | \n", + "64.0 | \n", + "9.0 | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "
| 17863 | \n", + "C202514 | \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", + "... | \n", + "8.0 | \n", + "9.0 | \n", + "7.0 | \n", + "9.0 | \n", + "0.0 | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "
| 17864 | \n", + "C202514 | \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", + "... | \n", + "24.0 | \n", + "16.0 | \n", + "7.0 | \n", + "2.0 | \n", + "2.0 | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "
| 17865 | \n", + "C202514 | \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", + "... | \n", + "5.0 | \n", + "13.0 | \n", + "7.0 | \n", + "9.0 | \n", + "0.0 | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "
5 rows × 61 columns
\n", + "| \n", + " | SKU1 | \n", + "SKU2 | \n", + "UF | \n", + "PC | \n", + "PV | \n", + "chave sku2 | \n", + "chave sku1 | \n", + "
|---|---|---|---|---|---|---|---|
| 0 | \n", + "84918 | \n", + "84918 | \n", + "AL | \n", + "393.70 | \n", + "1300.0 | \n", + "AL84918 | \n", + "AL84918 | \n", + "
| 1 | \n", + "84918 | \n", + "84918 | \n", + "BA | \n", + "436.73 | \n", + "1300.0 | \n", + "BA84918 | \n", + "BA84918 | \n", + "
| 2 | \n", + "84918 | \n", + "84918 | \n", + "SE | \n", + "379.94 | \n", + "1300.0 | \n", + "SE84918 | \n", + "SE84918 | \n", + "
| 3 | \n", + "54230 | \n", + "54230 | \n", + "AL | \n", + "138.54 | \n", + "499.9 | \n", + "AL54230 | \n", + "AL54230 | \n", + "
| 4 | \n", + "54230 | \n", + "54230 | \n", + "BA | \n", + "148.66 | \n", + "499.9 | \n", + "BA54230 | \n", + "BA54230 | \n", + "
| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "INICIO CICLO | \n", + "FIM CICLO | \n", + "DURAÇÃO | \n", + "dias_ate_inicio | \n", + "SKU1 | \n", + "SKU2 | \n", + "PC | \n", + "PV | \n", + "chave sku2 | \n", + "chave sku1 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "
| 17862 | \n", + "C202514 | \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", + "... | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "
| 17863 | \n", + "C202514 | \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", + "... | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "
| 17864 | \n", + "C202514 | \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", + "... | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "
| 17865 | \n", + "C202514 | \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", + "... | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "
5 rows × 67 columns
\n", + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "SKU1_x | \n", + "SKU2_x | \n", + "PC_x | \n", + "PV_x | \n", + "chave sku2 | \n", + "chave sku1 | \n", + "SKU1_y | \n", + "SKU2_y | \n", + "PC_y | \n", + "PV_y | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "
| 17862 | \n", + "C202514 | \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", + "... | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "
| 17863 | \n", + "C202514 | \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", + "... | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "
| 17864 | \n", + "C202514 | \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", + "... | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "
| 17865 | \n", + "C202514 | \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", + "... | \n", + "11085 | \n", + "48060 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "
5 rows × 71 columns
\n", + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "PC_x | \n", + "PV_x | \n", + "chave sku2 | \n", + "chave sku1 | \n", + "SKU1_y | \n", + "SKU2_y | \n", + "PC_y | \n", + "PV_y | \n", + "PRECO DE COMPRA | \n", + "PRECO DE VENDA | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "38.03 | \n", + "139.9 | \n", + "
| 17862 | \n", + "C202514 | \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", + "... | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "38.03 | \n", + "139.9 | \n", + "
| 17863 | \n", + "C202514 | \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", + "... | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "38.03 | \n", + "139.9 | \n", + "
| 17864 | \n", + "C202514 | \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", + "... | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "38.03 | \n", + "139.9 | \n", + "
| 17865 | \n", + "C202514 | \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", + "... | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "AL11085 | \n", + "<NA> | \n", + "<NA> | \n", + "NaN | \n", + "NaN | \n", + "38.03 | \n", + "139.9 | \n", + "
5 rows × 73 columns
\n", + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "Ciclo_y | \n", + "INICIO CICLO | \n", + "FIM CICLO | \n", + "DURAÇÃO | \n", + "dias_ate_inicio | \n", + "chave sku2 | \n", + "chave sku1 | \n", + "PRECO DE COMPRA | \n", + "PRECO DE VENDA | \n", + "UFPRODUTO | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17862 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17863 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17864 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17865 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
5 rows × 64 columns
\n", + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "Ciclo_y | \n", + "INICIO CICLO | \n", + "FIM CICLO | \n", + "DURAÇÃO | \n", + "dias_ate_inicio | \n", + "chave sku2 | \n", + "chave sku1 | \n", + "PRECO DE COMPRA | \n", + "PRECO DE VENDA | \n", + "UFPRODUTO | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17861 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17862 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17863 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17864 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
| 17865 | \n", + "C202514 | \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", + "... | \n", + "C202514 | \n", + "2025-09-22 | \n", + "2025-10-12 | \n", + "21 | \n", + "31 | \n", + "AL48060 | \n", + "AL11085 | \n", + "38.03 | \n", + "139.9 | \n", + "AL48060 | \n", + "
5 rows × 64 columns
\n", + "| \n", + " | PDV GINSENG | \n", + "PRODUTO | \n", + "202401 | \n", + "202402 | \n", + "202403 | \n", + "202404 | \n", + "202405 | \n", + "202406 | \n", + "202407 | \n", + "202408 | \n", + "202409 | \n", + "202410 | \n", + "202411 | \n", + "202412 | \n", + "202413 | \n", + "202414 | \n", + "202415 | \n", + "202416 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1235 | \n", + "23701 | \n", + "74043 | \n", + "12 | \n", + "24 | \n", + "12 | \n", + "16 | \n", + "8 | \n", + "14 | \n", + "6 | \n", + "14 | \n", + "12 | \n", + "0 | \n", + "8 | \n", + "10 | \n", + "4 | \n", + "42 | \n", + "0 | \n", + "14 | \n", + "
| 3033 | \n", + "23702 | \n", + "74043 | \n", + "2 | \n", + "22 | \n", + "8 | \n", + "22 | \n", + "10 | \n", + "14 | \n", + "14 | \n", + "10 | \n", + "12 | \n", + "8 | \n", + "22 | \n", + "6 | \n", + "14 | \n", + "36 | \n", + "10 | \n", + "0 | \n", + "
| 5171 | \n", + "23703 | \n", + "74043 | \n", + "10 | \n", + "18 | \n", + "6 | \n", + "18 | \n", + "6 | \n", + "2 | \n", + "20 | \n", + "0 | \n", + "10 | \n", + "2 | \n", + "22 | \n", + "4 | \n", + "2 | \n", + "26 | \n", + "2 | \n", + "16 | \n", + "
| \n", + " | DATA_VENDA | \n", + "PDV | \n", + "pdvs cp | \n", + "DESC PDV | \n", + "Código | \n", + "Descrição | \n", + "Quantidade | \n", + "Faturamento | \n", + "Ciclo | \n", + "Date | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2025-04-01 | \n", + "12993 | \n", + "24253 | \n", + "PERFUMARIA E COSMETICOS QUEIROZ DOURADO LTDA | \n", + "1004 | \n", + "FLORATTA DES COL MY BLUE 75ml | \n", + "1 | \n", + "98,99 | \n", + "C202505 | \n", + "2025-04-01 | \n", + "
| 1 | \n", + "2025-04-01 | \n", + "12993 | \n", + "24253 | \n", + "PERFUMARIA E COSMETICOS QUEIROZ DOURADO LTDA | \n", + "4539 | \n", + "BOTIK CR FAC FIRMADOR AC/HIAL 40g V2 | \n", + "1 | \n", + "129,05 | \n", + "C202505 | \n", + "2025-04-01 | \n", + "
| 2 | \n", + "2025-04-01 | \n", + "12993 | \n", + "24253 | \n", + "PERFUMARIA E COSMETICOS QUEIROZ DOURADO LTDA | \n", + "29046 | \n", + "BOTICOLL CONNEX DES BDY SPR 100ml V6 PCK | \n", + "1 | \n", + "38,9 | \n", + "C202505 | \n", + "2025-04-01 | \n", + "
| 3 | \n", + "2025-04-01 | \n", + "12993 | \n", + "24253 | \n", + "PERFUMARIA E COSMETICOS QUEIROZ DOURADO LTDA | \n", + "47154 | \n", + "CBEM DES ROLL S/ALUM 55ml | \n", + "1 | \n", + "21,98 | \n", + "C202505 | \n", + "2025-04-01 | \n", + "
| 4 | \n", + "2025-04-01 | \n", + "12993 | \n", + "24253 | \n", + "PERFUMARIA E COSMETICOS QUEIROZ DOURADO LTDA | \n", + "47411 | \n", + "ARBO NECESS LONA | \n", + "1 | \n", + "57,26 | \n", + "C202505 | \n", + "2025-04-01 | \n", + "
| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "C202415 | \n", + "C202416 | \n", + "C202417 | \n", + "C202501 | \n", + "C202502 | \n", + "C202503 | \n", + "C202504 | \n", + "C202505 | \n", + "C202506 | \n", + "C202507 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "C202514 | \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", + "... | \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", + "0.0 | \n", + "
| 1 | \n", + "C202514 | \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", + "... | \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", + "0.0 | \n", + "
| 2 | \n", + "C202514 | \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", + "... | \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", + "0.0 | \n", + "
| 3 | \n", + "C202514 | \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", + "... | \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", + "0.0 | \n", + "
| 4 | \n", + "C202514 | \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", + "... | \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", + "0.0 | \n", + "
5 rows × 91 columns
\n", + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \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", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "C202514 | \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", + "... | \n", + "AL28813 | \n", + "58.17 | \n", + "224.9 | \n", + "AL48141 | \n", + "0.0 | \n", + "0 | \n", + "0.0 | \n", + "1252248141 | \n", + "20.0 | \n", + "7.0 | \n", + "
| 1 | \n", + "C202514 | \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", + "... | \n", + "AL28813 | \n", + "58.17 | \n", + "224.9 | \n", + "AL48141 | \n", + "0.0 | \n", + "0 | \n", + "0.0 | \n", + "1281748141 | \n", + "45.0 | \n", + "18.0 | \n", + "
| 2 | \n", + "C202514 | \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", + "... | \n", + "AL28813 | \n", + "58.17 | \n", + "224.9 | \n", + "AL48141 | \n", + "0.0 | \n", + "0 | \n", + "0.0 | \n", + "1281848141 | \n", + "11.0 | \n", + "3.0 | \n", + "
| 3 | \n", + "C202514 | \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", + "... | \n", + "AL28813 | \n", + "58.17 | \n", + "224.9 | \n", + "AL48141 | \n", + "0.0 | \n", + "0 | \n", + "0.0 | \n", + "1282048141 | \n", + "8.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "C202514 | \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", + "... | \n", + "AL28813 | \n", + "58.17 | \n", + "224.9 | \n", + "AL48141 | \n", + "0.0 | \n", + "0 | \n", + "0.0 | \n", + "1282348141 | \n", + "11.0 | \n", + "2.0 | \n", + "
5 rows × 69 columns
\n", + "6170 rows × 4 columns
\n", "" ], "text/plain": [ - " CANAL med_por_canal\n", - "0 TODOS 90.5\n", - "1 VD 715.0" + " 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", + "... ... ... ... ...\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", + "\n", + "[6170 rows x 4 columns]" ] }, - "execution_count": 57, + "execution_count": 285, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "vendas_todos_historicos = df_final.columns[26:44]\n", + "vendas_todos_historicos = df_final.columns[36:54]\n", "\n", "df_final['MEDIANA DO HISTÓRICO'] = df_final[vendas_todos_historicos].median(axis=1)\n", "\n", "df_final['MEDIA DO HISTÓRICO'] = df_final[vendas_todos_historicos].mean(axis=1)\n", "\n", - "medi = df_final.groupby(['CANAL'])['MEDIANA DO HISTÓRICO'].max().reset_index()\n", + "medi = df_final.groupby(['CANAL','UF','Código'])['MEDIANA DO HISTÓRICO'].max().reset_index()\n", "medi = medi.rename(columns={'MEDIANA DO HISTÓRICO':'med_por_canal'})\n", "\n", - "df_final = pd.merge(left=df_final, right=medi,on='CANAL',how='left')\n", + "df_final = pd.merge(left=df_final, right=medi,on=['CANAL','UF','Código'],how='left')\n", "\n", "medi" ] }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 286, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'202411'" + "'202414'" ] }, - "execution_count": 58, + "execution_count": 286, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df_final.columns[28:29].str.split(\" \")[0][-1]" + "df_final.columns[38]" ] }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 287, "metadata": {}, "outputs": [], "source": [ - "mesmo_ciclo_ano_passado = df_final.columns[28:29]\n", - "ciclo_ano_passado = df_final.columns[28:29].str.split(\" \")[0][-1]\n", + "mesmo_ciclo_ano_passado = df_final.columns[38]\n", + "ciclo_ano_passado = df_final.columns[38]\n", "df_final[ciclo_ano_passado] = df_final[mesmo_ciclo_ano_passado]" ] }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 288, + "metadata": {}, + "outputs": [], + "source": [ + "df_final['CRESCIMENTO_GERAL'] = 0.2\n", + "df_final['CRESCIMENTO'] = 0.2" + ] + }, + { + "cell_type": "code", + "execution_count": 289, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(30950, 84)" + "(49398, 77)" ] }, - "execution_count": 60, + "execution_count": 289, "metadata": {}, "output_type": "execute_result" } @@ -1937,11 +5035,11 @@ "\n", "df_final['CRESCIMENTO_FINAL'] = np.where(df_final['CRESCIMENTO_GERAL'] + df_final['CRESCIMENTO']<0,0,df_final['CRESCIMENTO_GERAL'] + df_final['CRESCIMENTO'])\n", "\n", - "df_final['MEDIANA DO HISTÓRICO'] = np.where(df_final['MEDIANA DO HISTÓRICO']==0,df_final['MEDIA DO HISTÓRICO'] ,df_final['MEDIANA DO HISTÓRICO'])\n", + "df_final['MEDIANA DO HISTÓRICO2'] = np.where(df_final['MEDIANA DO HISTÓRICO']==0,df_final['MEDIA DO HISTÓRICO'] ,df_final['MEDIANA DO HISTÓRICO'])\n", "\n", "# Primeiro cálculo intermediário\n", "df_final['PV GINSENG'] = np.where(df_final['CRESCIMENTO_FINAL'] * df_final[ciclo_ano_passado] + df_final[ciclo_ano_passado] <1,\n", - " round(df_final['CRESCIMENTO_FINAL'] * df_final['MEDIANA DO HISTÓRICO']+ df_final['MEDIANA DO HISTÓRICO'],0), \n", + " round(df_final['CRESCIMENTO_FINAL'] * df_final['MEDIANA DO HISTÓRICO2']+ df_final['MEDIANA DO HISTÓRICO2'],0), \n", " round(df_final['CRESCIMENTO_FINAL']*df_final[ciclo_ano_passado]+df_final[ciclo_ano_passado],0))\n", "\n", "\n", @@ -1950,219 +5048,401 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 290, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "| \n", + " | Ciclo_x | \n", + "Região | \n", + "Canal | \n", + "Código | \n", + "Descrição | \n", + "IAF | \n", + "Tipo de pedido | \n", + "Foco | \n", + "Unidade de negócio | \n", + "Marca | \n", + "... | \n", + "PICO DE VENDAS 2024 | \n", + "Pico Vendas Ultimos 6 ciclos | \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", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "C202514 | \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", + "... | \n", + "20.0 | \n", + "7.0 | \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", + "
| 1 | \n", + "C202514 | \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", + "... | \n", + "45.0 | \n", + "18.0 | \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", + "
| 2 | \n", + "C202514 | \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", + "... | \n", + "11.0 | \n", + "3.0 | \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", + "
| 3 | \n", + "C202514 | \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", + "... | \n", + "8.0 | \n", + "3.0 | \n", + "0.2 | \n", + "1.0 | \n", + "2.421053 | \n", + "8.0 | \n", + "0.2 | \n", + "0.4 | \n", + "1.0 | \n", + "8.0 | \n", + "
| 4 | \n", + "C202514 | \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", + "... | \n", + "11.0 | \n", + "2.0 | \n", + "0.2 | \n", + "1.0 | \n", + "2.473684 | \n", + "8.0 | \n", + "0.2 | \n", + "0.4 | \n", + "1.0 | \n", + "8.0 | \n", + "
5 rows × 77 columns
\n", + "5 rows × 76 columns
\n", + "1 rows × 39 columns
\n", "" ], "text/plain": [ - " 202411_x ANALISTA Arquivo_Origem_x Arquivo_Origem_y \\\n", - "0 0.0 DANIEL BOT.csv BOT.csv \n", - "1 0.0 DANIEL BOT.csv BOT.csv \n", - "2 0.0 DANIEL BOT.csv BOT.csv \n", - "3 0.0 DANIEL BOT.csv BOT.csv \n", - "4 0.0 DANIEL BOT.csv BOT.csv \n", + " DURAÇÃO CANAL ANALISTA SUPERVISOR UF chave PDV \\\n", + "1 21 VD JEFFERSON Juliana Vasconcelos VDC 2371184387 23711 \n", "\n", - " Ação consumidor \\\n", - "0 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO \n", - "1 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO \n", - "2 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO \n", - "3 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO \n", - "4 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO \n", + " DESCRIÇÃO PDV Código DESCRICAO ... proj_mar \\\n", + "1 ER VITORIA DA CONQUISTA 84387 MALBEC DES COL V6 100ml ... 1505.0 \n", "\n", - " Ação revendedor C-1 C-2 C-3 C-4 ... \\\n", - "0 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO 0.0 0.0 0.0 1.0 ... \n", - "1 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO 0.0 2.0 0.0 0.0 ... \n", - "2 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO 2.0 0.0 0.0 1.0 ... \n", - "3 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO 3.0 0.0 0.0 3.0 ... \n", - "4 BODY SPRAY BOTICOLLECTION COM 20% DE DESCONTO 4.0 0.0 0.0 0.0 ... \n", + " proj_mar+1 MEDIA DO HISTÓRICO PICO DE VENDAS 2024 \\\n", + "1 0.0 545.894737 2734.0 \n", "\n", - " COBERTURA ATUAL EST PROJE FINAL CICLO ATUAL VENDAS R$ PV GINSENG \\\n", - "0 166.0 4.0 NaN \n", - "1 45.0 1.0 NaN \n", - "2 200.0 2.0 NaN \n", - "3 0.0 3.0 NaN \n", - "4 100.0 1.0 NaN \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", "\n", - " RBV 202406 COB PROJETADA CANAL_y UF_y PDV GINSENG PRODUTO 202411_y \n", - "0 NaN 166.666667 LJ BA NaN{boa}
Compartilhamos o relatório de ruptura projetada, com o objetivo de monitorar os itens com maior risco de ruptura nos próximos dias.
+Atualizamos o relatório, e agora mandaremos diariamente às 10:00 automaticamente. Pedimos paciência nessa etapa e contamos com o feedback de vocês.
O relatório a seguir apresenta as seguintes informações:
{boa}
+ ++ Segue o relatório semanal de Cobertura referente às regiões de + Alagoas (AL), Bahia (BA), Sergipe (SE), Conquista (VDC), Bahia3(BA3). +
+ ++ Este relatório contempla exclusivamente os itens com cobertura superior à 60 dias. +
+ ++ O objetivo é trazer visibilidade para os produtos parados e reforçar a importância + de ações para estimular a sua saída, contribuindo assim para a redução da cobertura + de estoque e otimização dos recursos. +
+ ++ Contamos com o apoio de todos para análise e tratativa dos itens listados. + Sugestões de ações como campanhas, transferências ou ajustes de sortimento são + bem-vindas para acelerar a movimentação dos produtos. +
+ ++ Importante destacar que este relatório ainda não contempla as transferências realizadas internamente, uma vez que estamos trabalhando para viabilizar a inclusão dessas informações no banco de dados. +
+ ++ Para mais informações, favor consultar a planilha em anexo. +
+ + + +""" + + +msg.set_content("Seu e-mail precisa de um visualizador HTML.") +msg.add_alternative(html_email, subtype='html') + + + +# 5. Anexar o arquivo Excel +with open(excel_path, 'rb') as f: + msg.add_attachment( + f.read(), + maintype='application', + subtype='vnd.openxmlformats-officedocument.spreadsheetml.sheet', + filename=excel_path.name + ) + +# 6. Enviar o e-mail via SMTP Outlook com configurações fornecidas +with smtplib.SMTP('smtp-mail.outlook.com', 587) as smtp: + smtp.ehlo() + smtp.starttls(context=ssl.create_default_context()) + smtp.login(remetente, senha) + smtp.send_message(msg) + + + +print("E-mail enviado com sucesso.") diff --git a/relatório_improdutivo/PDV_ATT.xlsx b/relatório_improdutivo/PDV_ATT.xlsx new file mode 100644 index 0000000..f3ff8be Binary files /dev/null and b/relatório_improdutivo/PDV_ATT.xlsx differ diff --git a/relatório_improdutivo/acompanhamento40DSV.xlsx b/relatório_improdutivo/acompanhamento40DSV.xlsx new file mode 100644 index 0000000..776012a Binary files /dev/null and b/relatório_improdutivo/acompanhamento40DSV.xlsx differ diff --git a/relatório_improdutivo/credenciais.ini b/relatório_improdutivo/credenciais.ini new file mode 100644 index 0000000..810e107 --- /dev/null +++ b/relatório_improdutivo/credenciais.ini @@ -0,0 +1,18 @@ +[credenciais] +remetente=joao.herculano@grupoginseng.com.br +senha=Cecigaming@21 + +[email] +assunto = ACOMPANHAMENTO IMPRODUTIVOS +destinatarios=lucas.Barbosa@grupoginseng.com.br,Andressa.Rocha@grupoginseng.com.br,Lais.Santos@grupoginseng.com.br,Daniel.Rodrigues@grupoginseng.com.br,Darlin.Cunha@grupoginseng.com.br,Dielly.Gomes@grupoginseng.com.br,Haryadne.Gomes@grupoginseng.com.br,Lucas.Bento@grupoginseng.com.br,Marcyara.Batista@grupoginseng.com.br,Pedro.Horgos@grupoginseng.com.br,Thayllan.Santos@grupoginseng.com.br,Jefferson.Ferreira@grupoginseng.com.br,Luan.Omena@grupoginseng.com.br,vinicius.souza@grupoginseng.com.br + +[email_ruptura] +assunto = ACOMPANHAMENTO DE RUPTURA PROJETADA +destinatarios=Lucas.Barbosa@grupoginseng.com.br,Andressa.Rocha@grupoginseng.com.br,Lais.Santos@grupoginseng.com.br,Daniel.Rodrigues@grupoginseng.com.br,Darlin.Cunha@grupoginseng.com.br,Dielly.Gomes@grupoginseng.com.br,Haryadne.Gomes@grupoginseng.com.br,Lucas.Bento@grupoginseng.com.br,Marcyara.Batista@grupoginseng.com.br,Pedro.Horgos@grupoginseng.com.br,Thayllan.Santos@grupoginseng.com.br,Jefferson.Ferreira@grupoginseng.com.br,Luan.Omena@grupoginseng.com.br,vinicius.souza@grupoginseng.com.br + + +[banco] +host = 10.77.77.10 +user = hubsupply +password = =c6#94sE&(v2 + diff --git a/relatório_improdutivo/relatório_improdutivo.py b/relatório_improdutivo/relatório_improdutivo.py index 63f06fe..01270e5 100644 --- a/relatório_improdutivo/relatório_improdutivo.py +++ b/relatório_improdutivo/relatório_improdutivo.py @@ -6,6 +6,7 @@ import pyodbc import configparser import pandas as pd import matplotlib.pyplot as plt +import matplotlib.dates as mdates import matplotlib.ticker as mtick import seaborn as sns from email.message import EmailMessage @@ -16,7 +17,7 @@ from datetime import datetime, time config = configparser.ConfigParser() -config.read(r"C:\Users\joao.herculano\Documents\Enviador de email\credenciais.ini") +config.read(r"relatório_improdutivo\credenciais.ini") print(config['banco']['host'],config['banco']['user'],config['banco']['password']) @@ -57,7 +58,9 @@ assunto = config['email']['assunto'] print(remetente,senha,destinatarios,assunto) -pdvs = pd.read_excel(r"C:\Users\joao.herculano\Documents\PDV_ATT.xlsx") +pdvs = pd.read_excel(r"relatório_improdutivo\PDV_ATT.xlsx") + + df['loja_id'] = df['loja_id'].astype('Int64') pdvs['PDV'] = pdvs['PDV'].astype('Int64') @@ -108,22 +111,45 @@ excel_path = Path("relatorio.xlsx") df2.to_excel(excel_path, index=False) -# 2. Criar e salvar gráfico +# Gerar gráfico melhorado - Estoque parado por UF plot_df = df2.groupby('UF')['valor_estoque_parado'].sum().reset_index() -plt.figure(figsize=(6, 4)) -ax = sns.barplot(data=plot_df, x='UF', y='valor_estoque_parado', errorbar=None) + +sns.set_theme(style="whitegrid") + +plt.figure(figsize=(12, 7)) +ax = sns.barplot( + data=plot_df, + x='UF', + y='valor_estoque_parado', + palette='crest', + errorbar=None +) + ax.yaxis.set_major_formatter(mtick.StrMethodFormatter('R${x:,.2f}')) + +# Anotar valores em cima das barras for p in ax.patches: valor = p.get_height() - ax.annotate(f'R$ {valor:,.2f}', (p.get_x() + p.get_width() / 2, valor), - ha='center', va='bottom', fontsize=9) -plt.title("Estoque parado por UF") -plt.ylabel("Valor em Reais") -plt.xlabel("UF") + ax.annotate( + f'R$ {valor:,.2f}', + (p.get_x() + p.get_width() / 2, valor), + ha='center', va='bottom', + fontsize=10, + fontweight='bold' + ) + +plt.title("Estoque Parado por UF", fontsize=18, fontweight='bold') +plt.ylabel("Valor em Reais", fontsize=13) +plt.xlabel("UF", fontsize=13) +plt.xticks(fontsize=11) +plt.yticks(fontsize=11) + +sns.despine() plt.tight_layout() plt.savefig("grafico.png") plt.close() + # Obtém a hora atual agora = datetime.now().time() hoje = datetime.today().strftime("%d/%m/%Y") @@ -147,7 +173,7 @@ df2['DATA'] = hoje df3 = df2.groupby('DATA', as_index=False)['valor_estoque_parado'].sum() -path2 = r'C:\Users\joao.herculano\OneDrive - GRUPO GINSENG\Documentos\acompanhamentos\40D sem Venda\acompanhamento40DSV.xlsx' +path2 = r'relatório_improdutivo\acompanhamento40DSV.xlsx' # Tenta abrir e escrever com append with pd.ExcelWriter(path2, mode='a', engine='openpyxl', if_sheet_exists='overlay') as writer: @@ -159,8 +185,47 @@ with pd.ExcelWriter(path2, mode='a', engine='openpyxl', if_sheet_exists='overlay # Escreve sem cabeçalho se não for a primeira linha df3.to_excel(writer, index=False, header=not start_row > 1, startrow=start_row) +de_effi = pd.read_excel(r'relatório_improdutivo\acompanhamento40DSV.xlsx') + +de_effi['Data'] = pd.to_datetime(de_effi['Data'], errors='coerce') + +# Step 2: Group and sort +grouped = ( + de_effi.groupby('Data')['Valor'] + .sum() + .sort_index() +) + +# Step 3: Plot +plt.figure(figsize=(12, 6)) +plt.plot(grouped.index, grouped.values, marker='o', linestyle='-', color='cornflowerblue', linewidth=2) + +# Step 4: Format numbers with dot ('.') separator, no decimals +for x, y in zip(grouped.index, grouped.values): + label = f"{y:,.0f}".replace(",", ".") # format like 75.063 + plt.text(x, y + max(grouped.values) * 0.015, label, ha='center', fontsize=9) + +# Step 5: Format chart +plt.title('Evolução de Estoque Improdutivo por Data', fontsize=14) +plt.xlabel('Data', fontsize=8) +plt.ylabel('Estoque Improdutivo', fontsize=12) +plt.grid(True, linestyle='--', alpha=0.6) + +# ✅ Set xticks to match the actual data points +ax = plt.gca() +ax.set_xticks(grouped.index) +ax.xaxis.set_major_formatter(mdates.DateFormatter('%d/%m/%Y')) +plt.xticks(rotation=45) + +# Format x-axis as dd/mm/yyyy +plt.gca().set_xticklabels([d.strftime('%d/%m/%Y') for d in grouped.index]) +plt.tight_layout() +plt.savefig("grafico2.png") +plt.close() + # 3. Criar e-mail com imagem embutida grafico_cid = make_msgid()[1:-1] # remove < > +grafico2_cid = make_msgid()[1:-1] msg = EmailMessage() msg['From'] = remetente msg['To'] = ', '.join(destinatarios) @@ -175,7 +240,7 @@ html_email = f"""Segue o relatório semanal de estoque improdutivo referente às regiões de - Alagoas (AL), Bahia (BA), Sergipe (SE), Vitória da Conquista (VDC) e Iracê. + Alagoas (AL), Bahia (BA), Sergipe (SE), Vitória da Conquista (VDC), Jacobina e Iracê.
@@ -200,7 +265,8 @@ html_email = f"""
Segue resumo:
-