<jupyter_start><jupyter_text>0. Imports<jupyter_code>import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt<jupyter_output><empty_output><jupyter_text>1. Funções<jupyter_code>def carrega_dados(caminho, aba, ignora_primeira_linha_coluna = False):
    if ignora_primeira_linha_coluna == True:
        dados = pd.read_excel(caminho, sheet_name = aba, skiprows = [0])
        if dados.shape[0] != 0:
            dic_mes = {'1': 'jan', '2': 'fev', '3': 'mar', '4': 'abr', '5': 'may','6': 'jun',
                   '7': 'jul', '8': 'ago', '9': 'set', '10': 'out', '11': 'nov', '12': 'dez'}
            dia = dados["Unnamed: 0"].dt.day
            mes = dados["Unnamed: 0"].dt.month
            dados["Unnamed: 0"] = dados["Unnamed: 0"].dt.day.map(str) + "/" + dados["Unnamed: 0"].dt.month.map(str).apply(lambda x: dic_mes[x])
            dados = dados.set_index("Unnamed: 0")                
    else:
        dados = pd.read_excel(caminho, sheet_name = aba)
        
    return dados


def grafico_comparativo(lista_alimentos, atributo):
    df = dados_nutricao.set_index('alimento')
    df = df.loc[lista_alimentos]
    plt.figure(figsize = (8,6))
    plt.title(f"Comparação de {atributo}")
    sns.barplot(data = df, x = df.index, y = atributo)<jupyter_output><empty_output><jupyter_text>2. Base de dados<jupyter_code>caminho_dados_csa = "data/csa_pindorama.xlsx"
dados_busca_cesta = carrega_dados(caminho_dados_csa, 'mutiroes', True)
dados_busca_cesta.shape<jupyter_output><empty_output><jupyter_text>3. Testes de gráfico comparativo<jupyter_code>dados_nutricao = carrega_dados(caminho_dados_csa,'info_nutricional')
grafico_comparativo(dados_nutricao,["agrião", "alecrim"], "calorias (kcal)")
caminho_dados_csa = "data/csa_pindorama.xlsx"
dados_nutricao = pd.read_excel(caminho_dados_csa, engine='openpyxl',sheet_name='info_nutricional')

def grafico_comparativo(dados_nutricao, lista_alimentos, atributo):
    df = dados_nutricao.set_index('alimento')
    df = df.loc[lista_alimentos]
    
    
    #plt.figure(figsize = (8,6))
    
    figura, ax = plt.subplots()
    ax = sns.barplot(data = df, x = df.index, y = atributo)
    ax.set_title(f"{atributo} por 100g de alimento cru")
    ax.set(xlabel=None)
    
           
figura = grafico_comparativo(dados_nutricao,['salsão',dados_nutricao["alimento"].values[5], 'tomate', 'tomate \ncereja'], 'calorias (kcal)')<jupyter_output><empty_output><jupyter_text>4. Planilha CSA<jupyter_code># ordenado
caminho_dados_csa = "data/csa_pindorama.xlsx"
dados_csa = pd.read_excel(caminho_dados_csa, engine='openpyxl',sheet_name='produtos')
dados_csa.head()
# ordenado
dados_csa.sort_values(by='produto')
df = dados_csa.copy()
df.index = [" "] * len(df)
df.loc[:,'na_terra'] = " "
df.loc[:,'na_cesta'] = " "
df.rename({'produto':'tabela','na_terra': '   ', 'na_cesta':' '}, axis='columns', inplace=True)
df[['tabela']]<jupyter_output><empty_output><jupyter_text>5. Testes de manipulação de strings<jupyter_code>dados_nutricao["alimento"].values[-1]
Lst = ['You can never understand one language until you understand at least two.',
       'Language is the blood of the soul into which thoughts run and out of which they grow.']
InsertNewlines = lambda lst, n=2: '\n'.join([' '.join(lst[i:i + n]) for i in range(0, len(lst), n)]) # n=words to keep together
out = [InsertNewlines(s.split()) for s in Lst]
print(out)<jupyter_output>['You can\nnever understand\none language\nuntil you\nunderstand at\nleast two.', 'Language is\nthe blood\nof the\nsoul into\nwhich thoughts\nrun and\nout of\nwhich they\ngrow.']<jupyter_text>6. Testes do histórico<jupyter_code>now = datetime.now() # current date and time

year = now.strftime("%Y")
print("year:", year)

month = now.strftime("%m")
print("month:", month)

day = now.strftime("%d")
print("day:", day)

time = now.strftime("%H:%M:%S")
print("time:", time)

date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:",date_time)
from datetime import datetime
import numpy as np

hist_cesta_csa = pd.read_excel(caminho_dados_csa, engine='openpyxl',sheet_name='hist_cestas')


# captura o historico de datas das cestas
hist_lista = list(hist_cesta_csa.sort_values("data")['data'].unique())

# filtra apenas as últimas 3 cestas
ultimas_tres_semanas = hist_lista[-3:]

# cada uma dessas 3 variáveis captura os produtos de respectiva data
produtos_semana_retrasada_2 = sorted(hist_cesta_csa[hist_cesta_csa['data']==ultimas_tres_semanas[0]]['item'].values)
produtos_semana_retrasada_1 = sorted(hist_cesta_csa[hist_cesta_csa['data']==ultimas_tres_semanas[1]]['item'].values)
produtos_semana_passada = sorted(hist_cesta_csa[hist_cesta_csa['data']==ultimas_tres_semanas[2]]['item'].values)

# cria um dicionário contendo as datas e os produtos delas
ultimas_cestas = {ultimas_tres_semanas[0]:produtos_semana_retrasada_2,ultimas_tres_semanas[1]:produtos_semana_retrasada_1,ultimas_tres_semanas[2]:produtos_semana_passada}


dic_mes_extenso = {'01': 'janeiro', '02': 'fevereiro', '03': 'março', '04': 'abril', '05': 'maio','06': 'junho',
                   '07': 'julho', '08': 'agosto', '09': 'setembro', '10': 'outubro', '11': 'novembro', '12': 'dezembro'}

inicio_frases = ["Em ", 
                 "Já em ", 
                 "E na última cesta, em " ]

fim_frases = [" nós tivemos na cesta: ", " os produtos foram: ", ", nós tivemos: "]


fr = 0
for data in ultimas_cestas:
    ano = pd.to_datetime(data).strftime('%Y')
    mes_num = (pd.to_datetime(data).strftime('%m'))
    mes = dic_mes_extenso[mes_num]
    dia = pd.to_datetime(data).strftime('%d')
    frase = (inicio_frases[fr] + f"{dia} de {mes}" + fim_frases[fr]  )
    fr += 1
    ultimo_item = len(ultimas_cestas[data])
    num_item = 1
    for prod in ultimas_cestas[data]:
        if num_item == ultimo_item:
            frase = frase + " e " + prod + "."
        else:
            if num_item == 1:
                frase = frase + prod
            else:
                frase = frase + ', ' + prod
        num_item += 1
    
    print(frase + '\n')
    


print(frases[0].format("oi","ola"))
print(f(frases[0]))
produtos_semana_retrasada_2
l = [2,4,1]
print(l.sort())
ultimas_cestas
dict[data]
L = ['banana', 'chuchu']
print('The lists are:', *L, sep=', ')
dict = {'1':['laranja','pera','uva'] , '2': ['pessego', 'maçã','alface']}
for i in dict:
    print(i)
    for prod in (dict[i]):
        print(prod)
ultimas_cestas = {ultimas_tres_semanas[0]:produtos_semana_retrasada_2,ultimas_tres_semanas[1]:produtos_semana_retrasada_1,ultimas_tres_semanas[2]:produtos_semana_passada}

for data in ultimas_cestas:
    print(pd.to_datetime(data).strftime('%Y'))
    mes = (pd.to_datetime(data).strftime('%m'))
    print(dic_mes_extenso[mes])
    print(pd.to_datetime(data).strftime('%d'))
    for prod in dict[data]:
        print(prod)
    
hist_cesta_csa[hist_cesta_csa['data']==ultimas_tres_semanas[0]]['item'].values
hist_lista<jupyter_output><empty_output><jupyter_text>7. Melhor visualização da cesta<jupyter_code>def na_cesta_extenso(df,label):
    print("rótulo")
    for item in df
    st.markdown("**:green_salad:** <font size='6' color='blue'> Informações disponíveis até 5ª-feira </font>", unsafe_allow_html=True)
    
    
caminho_dados_csa = "data/csa_pindorama.xlsx"
dados_busca_cesta = carrega_dados(caminho_dados_csa, 'produtos')
na_cesta = dados_busca_cesta.query("na_cesta == 'x'")
for item in na_cesta['produto'].sort_values:
    print(item)
#na_cesta_extenso(na_cesta, "rótulo")
na_cesta['produto'].sort_values().values
 if st.checkbox(f"Na cesta em {data}",value=False):
        st.image("src/na_cesta.jpg",use_column_width=True)
        na_cesta = dados_csa.query("na_cesta == 'x'")
        if na_cesta.shape[0] == 0:
            st.markdown("**:green_salad:** <font size='6' color='blue'> Informações disponíveis até 5ª-feira </font>", unsafe_allow_html=True)
        else:
            gera_tabela(na_cesta, f'--provável cesta em {data} (sujeito à adições)--')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15969962453066333, 'fraction_numerical': 0.013141426783479349, 'mean_word_length': 4.707857142857143, 'pattern_counts': {'":': 0, '<': 36, '<?xml version=': 0, '>': 36, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '141721', 'license': 'MIT', 'n_tokens_mistral': 3326, 'n_tokens_neox': 3246, 'n_words': 551, 'path': 'web_app_CSA_pindorama.ipynb', 'repo_name': 'renato-favarin/web_app_CSA_pindorama', 'size': '7990'}