Jump to content

Thanael

Pessoal da TecnoSpeed
  • Contagem de Conteúdo

    217
  • Ingressou

  • Última visita

  • Dias Ganhos

    28

Tudo que foi postado por Thanael

  1. Olá pessoal tudo bem? Sabe quando você precisa baixar algum vídeo ou música do Youtube e tem que ficar pesquisando aqueles conversores online cheios de anúncios que leva uma eternidade para baixar uma simples música... 🥲 E se eu te disse-se que você pode construir seu próprio programa para baixar os vídeos e as musicas que quiser do Youtube! Então vem comigo, que vou te mostrar como é simples realizar downloads do Youtube através do Python. 🚫🚫 Gostaria de lembra-los que não apoiamos pirataria e esses downloads devem ser realizados apenas em vídeos cujo direitos autorais permitam a livre distribuição.🚫🚫 Vamos primeiro instalar as bibliotecas necessárias para fazer isso. pip install pytube pip install moviepy Agora vamos importar as bibliotecas necessárias from pytube import YouTube from pytube import Playlist import moviepy.editor as mp import re import os Agora basta criarmos uma função para realizar o download de um vídeo do Youtube def download_video(): link = input('Digite o Link do Vídeo') path = input('Caminho de download') yt = YouTube(link) #Fazer o dowload ys = yt.streams.filter(only_audio=True).first().download(path) print("Download Completo") Pronto, com isso já podemos baixar qualquer vídeo que quisermos do Youtube. basta chamarmos a função criada e passar as informações pedidas. Agora você deve estar pensando "Okay, já sei baixar vídeo, mas como faço para baixar as músicas?" Então para realizar isso basta convertemos o arquivo de vídeo para um arquivo de áudio, usando a biblioteca moviepy que instalamos anteriormente. def download_music(): link = input('Digite o Link do Vídeo') path = input('Caminho de download') yt = YouTube(link) #Fazer o dowload ys = yt.streams.filter(only_audio=True).first().download(path) #Converter o video(mp4) para mp3 for file in os.listdir(path): #For para percorrer dentro da pasta passada anteriormente if re.search('mp4', file): #If verificando se o arquivo e .MP4 mp4_path = os.path.join(path , file) #Cria uma variavel para armazenar o arquivo .MP4 mp3_path = os.path.join(path, os.path.splitext(file)[0]+'.mp3') #Variavel que cria o nome do arquivo e adiciona .MP3 ao final new_file = mp.AudioFileClip(mp4_path) #Cria o arquivo de áudio (.MP3) new_file.write_audiofile(mp3_path) #Renomeia o arquivo, setando o nome criado anteriormente os.remove(mp4_path) #Remove o arquivo .MP4 print("Download Completo") E basta chamarmos a função. Pronto, viu só como é simples ? Não dependa mais desses conversores online, faça você mesmo o seu próprio! Caso você deseje criar uma interface gráfica, ou baixar playlist, dá uma olhada neste repositório no GitHub que criei, onde fiz um programa com interface gráfica para realizar os downloads do Youtube. Repositório: Download from YouTube
  2. Olá Walace, tudo bem? Não possuo muito conhecimento em criar arquivos executáveis (.exe) pelo python, geralmente eu rodo o arquivo .py normal. Em relação ao Pycharm eu utilizei um pouco, porém como utilizo python mais focado em ciência de dados prefiro utilizar os notebooks (jupyter ou colab) por conta da execução por células. Poderia me explicar um pouco mais sobre esse arquivo com macro? não entendo muito sobre esse conceito, mas se você me explicar posso tentar lhe ajudar mesmo assim.
  3. Olá @Krebinha tudo bem? obrigado pela paciência 😅 Vou tentar lhe ajudar, ao olhar este código, não entendi muito sobre este get_links() -> list[str]: este -> nunca visualizei em outros códigos, removi estes -> e o código funcionou normalmente aqui, ficando da seguinte forma. from bs4 import BeautifulSoup from datetime import datetime import requests import codecs def get_links(): site = "https://geralinks.com.br" soup = BeautifulSoup(requests.get(site).text, "html.parser") return list(set([ (x.parent["title"], x.parent["href"], x["src"].split("src=")[-1]) for x in soup.select("""a[href*="/link/"][title] > img""") ])) def get_actual_link(link: str): soup = BeautifulSoup(requests.get(link).text, "html.parser") url = soup.select_one("""link[rel="dns-prefetch"][href]""")["href"] return url def generate_rss_from_posts(posts: list): rss = '<?xml version="1.0" encoding="UTF-8" ?>\n' rss += '<rss version="2.0">\n' rss += '<channel>\n' rss += '\t<title>Geralinks Blog Posts - RSS Feed</title>\n' rss += '\t<link>https://github.com/ArjixWasTaken/random-rss-stuff-i-guess</link>\n' rss += '\t<description>A simple RSS feed for geralinks!</description>\n\n' # noqa for (title, link, image, date) in posts: rss += "\t<item>" rss += "\t\t<title>" + title + "</title>" rss += "\t\t<link>" + link + "</link>" rss += "\t\t<description>" + f'&lt;img src="{image}"&gt;' + "</description>\n" # noqa rss += "\t</item>" rss += '\n</channel>\n</rss>' return rss posts = sorted([ ( title, get_actual_link(link), img, datetime.fromisoformat("-".join(img.split("/")[-4:-1])) ) for (title, link, img) in get_links() ], key=lambda x: x[3], reverse=True ) with codecs.open("geralinks-feed.xml", "w", "utf-8") as f: f.write(generate_rss_from_posts(posts)) O que sugiro para você seria remover todos estes -> e executar novamente o código. acima esta o código já ajustado, rodei ele e não obtive nenhum erro. Tenta realizar isto ai e me informa se deu certo ou não. Além disso fico a disposição para responder quaisquer dúvidas. 😀
  4. Fala pessoal tudo bem? 😀 Sabe aquelas tarefas monótonas cansativas de realizar 😕, que muitas vezes é simplesmente clicar nos mesmos lugares, apertar as mesmas teclas e por ai vai.... Já imaginou poder automatizar essas tarefas maçantes e fazer com que o computador realize essas mesmas tarefas sem você nem precisar estar perto? Isso seria uma maravilha né, mas ai você pode estar se perguntando "Ah mas para fazer isso eu preciso ser um programador experiente..." Então a resposta para essa pergunta é NÃO! Você pode SIM automatizar processos simples somente sabendo o básico de Python. Automação com Pyautogui Muitas tarefas podem ser automatizadas com a biblioteca Pyautogui do python, mas o que exatamente esta biblioteca faz ? Então esta biblioteca resumidamente controla seu mouse e teclado, de modo com que você passe instruções para o seu computador explicando o que ele deve fazer, onde clicar, que tecla apertar e assim por diante, achou complicado? vou facilitar para você mostrando um exemplo. Exemplo: Preciso jogar os arquivos de uma pasta para o drive, com o pyautogui seria como se criássemos as instruções de como faríamos manualmente e a partir dai o computador só iria seguir estas instruções. Apertar Windows Digitar Google Abrir nova aba Pesquisar Google drive Logar Apertar Windows Procurar os arquivos Clicar e segurar no arquivo Arrastar até o google drive soltar Perceba que para realizar isso você precisa explicar todo o passo a passo, pois a biblioteca ira controlar o mouse e teclado realizando somente as ações passadas no script, de modo com que você precisa explicar literalmente todo o processo, desde pressionar uma tecla até levar o mouse até x posição. Veja abaixo um exemplo de como ficaria isto no python import pyautogui import time # Abrir o bloco de notas pyautogui.press('winleft') time.sleep(3) pyautogui.write('bloco de notas') time.sleep(3) pyautogui.press('enter') # Digitar este é um exemplo de automação time.sleep(1) pyautogui.write('Este é um exemplo de automação') A ideia por trás de realizar este tipo de automação é bem simples, você nem precisa possuir conhecimento de tópicos avançados da linguagem. Com o básico você já consegue automatizar a maioria dos processos que você teria de realizar manualmente. Caso queira conhecer mais sobre esta biblioteca existem diversos vídeos no youtube ensinando a utilizar ela, mas eu recomendo sempre ler a documentação, e a documentação desta biblioteca é bem prática e explica tudo o que se pode fazer com ela. Documentação: https://pyautogui.readthedocs.io/en/latest/ Com base nesse conteúdo percebemos que automatizar alguma tarefa pode ser algo simples dependendo da tarefa. Então, já pensou em quais tarefas do seu dia a dia você poderia automatizar com o pyautogui? Me conta aqui nos comentários estou curioso para saber quais processos você pretende automatizar.
  5. Opa @walacealves.mvn tudo certo? Estou dando uma olhada aqui, realizei alguns testes abaixo. Este código abaixo é uma tratativa dos dados para criar um dataframe onde possa trabalhar. import pandas as pd df = pd.read_excel('testepython.xlsx') # Renomear as colunas df.columns = df.loc[1] # Obter somente as colunas corretas df = df.iloc[2:,[1,2,3,4,5,6,7]] Após esta tratativa dos dados, foi realizado a obtenção dos EDOC que possuem mais de 1 valor igual. # Criar lista com os EDOOC lista = df['EDOC'].value_counts() # Obter somente os que possuem duplicações duplicados = lista[lista >= 2].keys() Após isso criei uma função com os ifs para verificar a situação. def verifica_situacao(situacao): if situacao < 0.80: return 'ruim' elif situacao >= 0.81 and situacao <= 0.86: return 'aceitavel' elif situacao > 0.86: return 'bom' E criei o LOOP com os EDOC onde é realizado todo o processo para criar o dataframe dos resultados df_result = pd.DataFrame({'edoc':[],'situacao':[],'status':[]}) for duplicado in duplicados: edoc = duplicado #Obter o edoc df_edoc = df[df['EDOC'] == edoc] #Criar a situacao TRY por conta de existirem registros sem o CF, ou seja divisão por 0 try: # Obter a situação AM / CF e arredondar situacao = df_edoc[df_edoc['TIPO'] == 'AM']['VALOR'].sum() / df_edoc[df_edoc['TIPO'] == 'CF']['VALOR'].sum() situacao = round(situacao,2) # Obter o status status = verifica_situacao(situacao) # Caso CF seja 0 except: situacao = 'divisao por 0' status = 'divisao por 0' # Adiciona ao df_result df_result = df_result.append({'edoc':edoc,'situacao':situacao,'status':status},ignore_index=True) Com base nisso teremos o seguinte resultado. Lembrando que dentro do dataframe existem resultados cujo CF era 0, então neste dataframe aparecerão como 'divisao por 0'. Também existem registros onde vem muitos EDOC AM para poucos EDOC CF e vice versa. Vou deixar aqui em anexo o notebook com o código caso tu queira baixar e entender ou testar novas coisas, caso tenha ficado com alguma dúvida ficarei feliz em ajudar. 👍 walace.ipynb
  6. Bom dia @Guto_iniciante tudo bem? Para descobrir em quantas tentativas o usuário acertou é bem simples, vamos pensar no seguinte: Você tem um while que verifica se ele acertou ou errou a cada iteração correto? Sempre que o código passa por uma iteração novamente (repetição) significa que ele errou, visto que só sairá do while quando ele acertar correto? Então com base nisso, basta criar uma variável tentativas = 0 antes do while e a cada iteração que o while não for chute == valor_aleatorio tu irá somar +1 na variavel tentativas (tentativas += 1) Com isso a variável tentativas armazenará a quantidade de tentativas que o usuário fez até acertar. tentativas = 0 acertou = False while acertou == False: chute = int(input('Faça sua aposta de 0 a 36 🙂 !!! : ')) probability_of_try = (chute/valor_aleatorio) if chute > valor_aleatorio: print('Você chutou Acima!!! a probabilidade do numero correto cair é de: ') print(Fraction(probability_of_try).limit_denominator()) tentativas += 1 elif chute < valor_aleatorio: print('Você chutou Abaixo!!! a probabilidade do numero correto cair é de:') print(Fraction(probability_of_try).limit_denominator()) tentativas += 1 elif chute == valor_aleatorio: acertou = True print('Você Acertou em : ') print(Fraction(probability_of_try).limit_denominator()) print(f'Tentativas: {tentativas}') Perceba que nas alterações feitas no código só foi adicionado o ponto do qual falei, sobre a variável tentativas. Acredito que fazendo isso seu programa irá funcionar da maneira que gostaria, caso tenha ficado com alguma dúvida em relação a lógica ou algo mais, sinta-se a vontade para me perguntar, ficarei feliz em ajudar. 😀
  7. Olá @mental_katsu tudo bem? Andei vendo seu código, e esta faltando armazenar os returns das suas funções em variáveis. Nesse caso deveria ser. if n == 1: print("Agora resta apenas uma peça no tabuleiro.") z = computador_escolhe_jogada(n, m) else: print("Agora restam", n, "peças no tabuleiro") x = computador_escolhe_jogada(n, m) Pois o return seria algo tipo "Retornar alguma coisa para ser usada fora da função", porém para que seja possível utilizar este retorno você tem que armazenar ele em uma variável como no exemplo acima. Deste modo sempre que existir o return na função, você devera chamar essa função armazenando em uma variavel para receber o valor do return. Exemplo: def numero_ao_quadrado(numero): return numero**2 # Deste modo poderei usar o return da função numero = numero_ao_quadrado(4) # Caso so exista a chamada da função o return não fica armazenado em nenhum lugar numero_ao_quadrado(4) Tenta ajustar as chamadas das suas funções para ver se irá funcionar o código, após isso avisa aqui se deu certo ou não. Também estou a disposição para lhe auxiliar em quaisquer dúvidas que possam surgir. 😀
  8. Olá você já ouviu falar de Web Scraping 🤨 ? Caso tenha ficado curioso sobre o que é o Web Scraping e o quão útil isso pode ser, vou tentar esclarecer um pouco mais sobre este tema aqui neste tópico. Vamos começar explicando o que é Web Scraping. Web Scraping: Este processo consiste na coleta de informações de dados da web, essa coleta ocorre por meio de uma "raspagem" nos dados (HTML) dos sites. O funcionalmente deste processo consiste em obter o HTML do site desejado e com base no HTML procurarmos as informações desejadas através dos IDS dos elementos HTML. Utilidade: Por meio dele podemos extrair os dados que queremos de algum site sem precisar necessariamente mexer com APIs, um exemplo de web scraping é extrair informações de criptomoedas de um site como o coingecko, para que você possa utilizar essas informações em seu projeto de data science. (Caso queira ver este exemplo, acesse Introdução ao WebScraping, neste repositório existe um notebook onde eu explico todo o processo de extração dos dados por meio do web scraping com python). Outro exemplo poderia ser abrir um site de vendas e extrair as informações como preço dos produtos para alimentar seu banco ou utilizar as informações como bem quiser. Podemos observar que as possibilidades do que você pode fazer com isso são inúmeras, basta usar sua criatividade. 🤑 Conhecimentos necessários: Python: Sabendo o básico de Python você já consegue realizar um web scraping, é bastante usado as estruturas de repetições no processo (FOR) e requisições GET (requests.get ...). HTML: É importante saber ler o HTML, uma boa maneira de pesquisar as informações que deseja no HTML é abrir o site desejado e clicar com o botão direito e ir em inspecionar elemento (Atalho F12). Para encontrar o que deseja na página basta clicar em. e levar o mouse na informação que deseja, isso te levará ao respectivo trecho do HTML que contém essa informação. Bibliotecas Utilizadas no processo: BeautifulSoup: Esta se trata da Biblioteca principal que torna possível este processo de webscraping, é por ela que navegamos dentro do HTML e extraímos as informações desejadas. Requests: Esta é a biblioteca onde fazemos uma requisição GET para o site desejado, com base nisso que conseguimos acessar o HTML. from bs4 import BeautifulSoup import requests Web Scraping na prática: Para não deixar este tópico extenso demais, infelizmente vou me abster de realizar toda uma explicação detalhada de como realizar um web scraping na prática. Mas caso você tenha se interessado e gostaria de ver como funciona um web scraping na prática, deixo aqui meu convite para acessar meu repositório sobre web scraping dentro dele explico mais a fundo como realizar este processo na prática, demonstrando e ensinando como utilizar o básico do BeautifulSoup para realizar uma extração simples. Repositório: Web Scraping na prática. Enfim... 😅 Espero que este tópico tenha despertado sua curiosidade sobre WebScraping e o quão útil ele pode ser para extrair dados de diversas fontes. Caso alguma informação não tenha ficado clara, estou a disposição e ficarei feliz em poder explicar e esclarecer quaisquer dúvidas que possam surgir a respeitos deste tema. Já aproveito também e deixo aqui meu Linkedin e GitHub para qualquer um que queira manter contato. 👍
  9. Olá @EME Rock tudo bem? Pelo que observei no seu código esta tudo correto. Talvez o que você relatou seja por conta de você printar a soma deles (total_vendas) que vai ser 1200 + 3400 = 4600 e depois adicionar 500 ao macbook (3400 + 500 = 3900), ai você printou ele no print(vendas[i]) que retornará os exatos 3900 corretos. Segue em anexo uns prints do seu código, só ajustei o print para você observar o macbook antes e depois de inserir os 500, pelo que observei esta tudo certo. Acredito que seja isso você gostaria que retornasse, caso eu não tenha esclarecido sua dúvida fico a disposição para lhe ajudar no que precisar. 😃
  10. Opa @Germano Mendes, desculpa pela demora para responder, semana de prova na faculdade ai ta meio corrido por aqui 😅 Pelo que observei nas imagens acima lá, não tinha percebido isso antes, mas quando você esta lendo seu arquivo .xls, os nomes das suas colunas estão vindo como a 1° linha do dataframe, e as colunas do seu dataframe estão recebendo os nomes unnamed: 0 e unnamed:1 Deste modo quando você utilizar o tabela_vendas['Vendas'] não ira funcionar já que a coluna vendas não existe... Uma alternativa para isso é realizar uma tratativa ao ler os dados, por exemplo. # Setar a 1° linha como nome das colunas tabela_vendas.columns = tabela_vendas.iloc[0] #Remover a 1° linha tabela_vendas = tabela_vendas.drop(0) Existem outras maneiras de realizar essa remoção ou renomear as colunas, mas essa já quebra o galho. Obs: Tem que ficar bem atento sempre que utilizar dados de csv e de planilhas, por conta de muitas vezes o nome das colunas virem na 1° linha do dataframe. Enfim acredito que ao realizar essa alteração o código volte a funcionar, caso ainda assim não funcione seu código, manda o resultado aqui que damos mais uma olhada, desta vez serei mais ágil para responder. 😀👍
  11. Olá @Porto tudo bem? Então existem diversas maneiras para realizar isso, segue abaixo uma delas. Caso queira que fique na repetição e só saia quando a determinada condição seja atingida. da para alterar esse While por um For também, mas no geral acredito que esta seja a maneira mais simples de realizar isto. informacoes = [] while True: texto = input('Digite qualquer coisa: ') informacoes.append(texto) if texto == 'determinada condição': print('você escreveu "determinada condição"') break Obs: Todas as informações ficam armazenadas na lista informacoes. Caso tenha ficado com qualquer dúvida em relação ao código pode me perguntar que ficarei feliz em ajudar. 👍
  12. Olá @VitorOM, acredito que seja possível sim, trabalhoso, mas possível. Vamos analisar como podemos fazer essa extração/leitura de dados da interface de outro programa, segue abaixo algumas maneiras das quais eu conheço, podem existir outras também. API Verificar se esse programa possui uma API pública, ai você pode obter os dados através desta API, trata-los com o Python e enviar também por API para este outro programa. Prós: É uma maneira com mais certeza de funcionar. Contras: Necessita mais conhecimento de programação, APIs, Python. Também é necessário que os programas tenham esse acesso por APIs Automação. Esse é um trabalho que eu acho bem trabalhoso, mas com uma compreensão mais fácil, e demanda menos conhecimento. Existe uma biblioteca no python chamada pyautogui, que basicamente controla seu mouse e teclado, o processo para realizar ela seria igual ao que você faz manual, a diferença que é o python que faz, Exemplo. 1 - Abrir programa X 2 - Levar o mouse até a informação que quero 3 - Clicar e selecionar a informação 4 - Salvar a variável no python para trata-la 5 - Abrir o outro programa 6 - Levar o mouse ate determinada função 7 - Realizar ação. Prós: Necessita menos conhecimento de programação, segue um tutorial sobre isso. Automatize Qualquer Sistema ou Programa com Python (RPA) Contras: O programa python, terá que ser testado muitas e muitas vezes. Facilmente quebrável o script. Enfim essas são as maneiras das quais conheço que podem ser feitas. Com certeza devem existir outras também.
  13. Olá @Mil, tudo bem? Então, você pode sim reutilizar as variáveis em outros IF, em qual parte do código está dando erro ou não esta ocorrendo como queria? Pelo que olhei seu código está tudo conforme, só ficar atenta ao tipo de dado. pois em um dos seus IF que utiliza a variável dificuldade que é do tipo INT, você a esta comparando com a string '2'. Deste modo nunca irá entrar dentro deste IF. já que o INTEIRO 2 nunca será igual ao TEXTO 2. Acredito que sua dúvida tenha sido por questão do código nunca retornar TRUE neste IF correto? caso contrario fico a disposição para tirar qualquer dúvida. 👍
  14. Olá @Germano Mendes, tudo bem? Poderia mandas alguns prints do código, ou se possivel colocar partes do código aqui. Se possivel poderia informar também como esta o DataFrame. Acredito que passando essas informações eu consiga lhe dar uma solução mais assertiva.
  15. Olá @thallessalomon tudo bem? Segue abaixo como ficaria o código. #Criar a variavel salario salario = 400 #Obter o percentual e o mes percentual = int(input('Qual o % que deseja guardar?')) meses = int(input('Quantos meses deseja guardar? ')) #realizar a operação resultado = ((salario*percentual)/100) * meses print(f'Apos {meses} meses guardando R$ {(salario*percentual)/100} você tera exatos R$ {resultado}') Caso tenha ficado com dúvida em alguma parte do código, ficarei feliz em lhe explicar. 👍
  16. Olá @walacealves.mvn, tudo bem? Desculpa a demora para responder 😅, vou tentar lhe ajudar, fiquei um pouco com dúvida em relação a como é essa tabela, ela seria um dataframe? Código para criar este DataFrame, caso sua tabela já seja este DataFrame pode desconsiderar esse trecho de código abaixo. import pandas as pd tabela = ['02021AM28439.5', '12018/60612AM1024811.0', '22018/60612CF1158510.96', '32019/13866AM380307.65', '42019/13866CF1495193.7',] #Criar cada coluna edoc,tipo,valor = [],[],[] for item in tabela: #Criar uma tratativa para retirar o que queremos if item.find('AM') != -1: tipo_doc = 'AM' elif item.find('CF') != -1: tipo_doc = 'CF' # Armazenar a posição do tipo ou seja do AM ou CF index_tipo = item.find(tipo_doc) # Adicionar esses valores as suas respectivas listas tipo.append(tipo_doc) edoc.append(item[1 : index_tipo]) valor.append(item[index_tipo+2 :]) df = pd.DataFrame(data = {'edoc':edoc,'tipo':tipo,'valor':valor}) Esse DataFrame possui essa visualização. Código para realizar o que você pediu. # Obter os edoc que aparecem em mais registros lista = df['edoc'].value_counts() duplicados = lista[lista >= 2].keys() # Criar o DataFrame dos resultados. df_result = pd.DataFrame({'edoc':[],'situacao':[],'status':[]}) # Percorrer pelo edoc que possuem mais do 1 registro for edoc in duplicados: valores = [] # percorrer pelos registros cujo edoc sejam iguais for index, item in df[df['edoc']==edoc].iterrows(): # Armazenar os valores do AM e do CF valores.append(float(item['valor'])) resultado = valores[0] / valores[1] # Classificação para o status if resultado < 0.80: status = 'ruim' elif resultado >= 0.81 and resultado <= 0.85: status = 'aceitavel' elif resultado > 0.86: status = 'bom' df_result = df_result.append({'edoc':edoc,'situacao':resultado,'status':status},ignore_index=True) O resultado disto será: Caso queira deixar a situação em % basta alterar a ultima linha do código ali para df_result = df_result.append({'edoc':edoc,'situacao':f'{(resultado*100):.2f}%','status':status},ignore_index=True) é o resultado será Espero que isso resolva sua dúvida. Também estou a disposição para lhe ajudar caso fique com quaisquer dúvidas. 👍
  17. Thanael

    Arredondamento de Sum

    Que ótimo que funcionou! 👍
  18. Thanael

    Arredondamento de Sum

    Que estranho 🤔, não vejo motivo para não funcionar o apply. Vamos tentar utilizar outra abordagem então. Estava olhando aqui e vi que existe a função .round do próprio pandas 😂, tenta executar: CE['VALOR'] = CE['VALOR'].round(2) Segue o link da Documentação. Acredito que ao fazer isso já vai funcionar kkk Caso mesmo assim não funcione, vamos procurar outra alternativa.
  19. Thanael

    Arredondamento de Sum

    Eita 🤔, já verificou o tipo do dado ? Tenta converter o dado para float no apply CE['valor'] = CE['valor'].apply(lamda x : round(float(x),2)) na teoria era para isso funcionar...
  20. Thanael

    Arredondamento de Sum

    Olá @raze, tudo bem? Acredito que no seu caso, não esteja arredondando por conta do apply estar sendo aplicado ao groupby. O apply pode ser usado no DataFrame inteiro ou em apenas uma coluna, eu geralmente utilizo ele na coluna por ser mais fácil. Para utilizar ele no DataFrame o código fica um pouco diferente, pois é como se você "aplicasse uma função para todas as colunas do DataFrame". Caso você queira utilizar o apply para o dataframe inteiro, sugiro ver a Documentação. Já tentou arredondar depois de criar esse DataFrame CE? Segue abaixo o código. CE['valor'] = CE['valor'].apply(lamda x : round(x,2)) Acredito que ao fazer isso irá funcionar. Tenta ai, ai me diz se deu certo ou não 😄, caso ainda assim não funcionar, posso procurar outras soluções para resolver esse caso. Estou a disposição para eventuais dúvidas.
  21. Olá @raze tudo bem? Vamos lá, para resolver seu problema podemos utilizar o len( ) do python. ele retorna o tamanho de uma string, como no seu caso você deseja fazer isso para a coluna inteira do dataframe, podemos usar o apply. Segue abaixo como ficaria o código. df['len'] = df['Cidade'].apply(lambda x: len(x)) df O apply funciona semelhante ao map, ele irá "aplicar" uma função para todos os itens da coluna. Portanto no exemplo acima passamos a lambda que é um jeito de declarar uma função in line para obter o tamanho de cada elemento. Espero ter resolvido sua dúvida, também estou a disposição para quaisquer outras duvidas que possam surgir. 😀
  22. Olá @MarioJaa, tudo bem ? Não entendi muito bem o ultimo for ali, porém alterei o código de modo com que funcionou, talvez você consiga ter uma ideia ao analisar o código abaixo. 😅 Utilizei de outra lógica para resolver isso. Transformei cada linha do numeros.txt em um array (lista) Após isso realizei um for dentro dessa lista criada, e com base nesse for criei uma nova lista somente com os valores não primos. Após isso, transformei a lista em str e adicionei o '\n' para quebrar a linha def verificaPrimo(num): return all(num%g!=0 for g in range(2,num)) and num > 1 # Abrir o arquivo arquivo = open('numeros.txt').read() #Criar uma lista geral, contendo cada linha do txt como uma nova lista # Resultado disso é arquivo = ['10 20 30 25 98 1000', '1 0 -1 9 20' ...] arquivo = arquivo.split('\n') # Resultado disso é lista = [ ['10','20','30','25','98','1000'] , ['1','0','-1','9','20'] ...] lista = [texto.split(' ') for texto in arquivo] # Criar o loop para extrair somente os não primos lista_nao_primo = [] # Primeiro FOR: percorrer dentro da listas [ [linha1],[linha2],[linha3] ...] for linha in lista: linha_nao_primos = [] # Segundo For: percorrer dentro de cada llinha for numero in linha: #Verificar se é primo if verificaPrimo(int(numero)) == False: #Extrair os não primos linha_nao_primos.append(numero) #Adicionar na lista geral lista_nao_primo.append(linha_nao_primos) # Agora basta criar o arquivo # Primeiro transformar a lista em string, adicionando o '\n' para quebrar a linha texto = '' for linha in lista_nao_primo: texto += ' '.join(linha) + '\n' # Criar o arquivo print(texto,file=open('resultado.txt','w')) Código só parece grande, mas é porque tenho costume de comentar quase tudo 😅. Enfim o resultado foi esse. . Caso fique com qualquer dúvida em relação ao código acima ou em qualquer outra coisa, basta me chamar. Também estou a disposição para quaisquer outras dúvidas que possam surgir. 😀
  23. Olá @Adalberto.neres tudo bem? Desculpe a demora para responder, mas vamos lá ... Respondendo a sua 1° pergunta para saber a semana do ano em que estamos, podemos fazer seguindo esta ideia. Se 1 semana equivale a 7 dias, podemos ver em qual dia do ano estamos e com base nisso realizar uma divisão por 7 para descobrir a semana. Portanto vamos fazer isso agora em Python. import datetime #Obter os dias primeiro = datetime.date(2022,1,1) hoje = datetime.date.today() #Ver quantos dias se passaram. dias = abs((hoje - primeiro).days) #Realizar a divisão por 7. #Caso a divisão retorne decimal, somar +1 para trazer a semana atual if dias%7 != 0: semana = (dias//7)+1 else: semana = dias/7 print(f'Estamos na {semana}° semana') Acredito que existam outros jeitos de fazer a mesma coisa, porém esta foi a maneira que preferi fazer. Caso tenha ficado alguma dúvida referente a esta parte, por favor me avise, que ficarei feliz em responder as dúvidas. 😀 Agora em relação a sua segunda pergunta, não entendi muito bem ela 😅, poderia por gentileza me explicar novamente ela ?
  24. Olá @Devstar tudo bem? Então esse trecho do código se trata da declaração de uma função, mais especificamente de um método de uma class. Pelo que entendi o objetivo dele é verificar se a variável atual, declarada no inicio do método (função) é igual ao parâmetro nodo. De modo que caso ela seja igual a nodo (atual == nodo) o programa ira printar na tela "Realizado", e caso o valor seja nulo (None) ira printar na tela "Erro". Pelo que vejo a ideia é apenas printar "Realizado" ou "Erro", tendo em vista que não há nenhum return desta função. Obs: Por se tratar de uma função ela só realizará alguma ação ao ser chamada durante o código. No trecho acima foi realizado apenas a declaração da função, portanto caso você rode apenas aquela parte não ira retornar nenhum resultado. Caso tenha ficado com alguma dúvida a respeito da explicação, ou queira que eu explique mais aprofundado cada trecho do código, basta pedir aqui nos comentários 👍 Além do mais fico a disposição para quaisquer dúvidas.
  25. Olá Jovani, tudo bem? Então nunca me aconteceu isto, mas vamos lá tentar resolver isso. Pelo que pesquisei geralmente reiniciando o kernel isso já se resolve, mas no seu caso não resolveu né? Infelizmente não achei muito sobre o erro para poder ajudar mais 🥲. Acredito que o mais recomendado seja reinstalar o anaconda para ver se ainda irá ocorrer o erro.
×
×
  • Create New...