geovaniif
Pessoal da TecnoSpeed-
Contagem de Conteúdo
40 -
Ingressou
-
Última visita
-
Dias Ganhos
2
Tipo de Conteúdo
Perfis
Fóruns
Blogs
Calendário
Downloads
Tudo que foi postado por geovaniif
-
Oi! Cara, vc vai ter que baixar um modelo de mapa e usar uma lib. Eu ja fiz isso uma vez, mas faz tempo. Da uma procurada com o Geopandas. Eu vou tentar simular um aqui mais pra frente e volto pra te ajudar
-
Oi! Cara posso ter entendido errado, mas eu acho que vc quer pegar o indice do dataframe que o maior valor pertence, correto? Tipo, qual a linha do dataframe que ele ta, correto? Se for isso, acontece que vc está tentando chamar o index de um array ali no seu print. Teria que ser values[0].index(max_values) entretanto toda via, isso ainda não vai te ajudar pois o dataframe não tem esse função index que eu me lembre. Se vc quer pegar o registro da linha do max_values, é melhor filtrar fazendo values[0][values[0]["A1'"] == max_values].index[0]
-
Oi! o problema é no seu if! basicamente, vc ta vendo se a variavel resposta é igual a resolva, entretanto a variavel reposta está sendo capturada como texto (string). basta fazer o cast para inteiro int(resposta) == resolva
-
ata, entendi! cara, é MUITO parecido com R. Eu costumo criar um dicionario, que parece um json algo desse tipo: meu_dicionario = { "empresa" : [1,2,3,4], "latitude" : [v1, v2, v3, v4], "longitude" : [l1, l2, l3, l4], } #coloquei v1 v2 l1 l2 pq fiquei com preguiça de ver os valores meu_dataframe = pd.DataFrame(meu_dicionario) você também pode colocar direto na função DataFrame ao invez de criar variavel (da mesma forma que vc fez em R). Só separei pra ficar mais claro
-
Oi! bom, vc nao transforma uma tela numa dataframe explica melhor o que é essa tela, é array? é o que? é o resultado de um select num banco de dados?
-
Print não mostra lista completa - Python_Pandas
geovaniif respondeu à TheusBarboza no tópico em Python
meu_dataframe.sort_values(by='coluna_que_desejo_ordenar', ascending=True) #mudar o ascending para false para ordenar de forma decrescente -
oi! cara, pode ser muita coisa, massss uma das coisas que pode ser é que o seu join está removendo os registros com o sts_cats_artigo_id = 1 Isso não significa que seu join está errado, um join pode remover linhas, é normal. Uma coisa que vc pode fazer é trocar o inner por left. Dessa forma, o join não vai remover esses registros, mas as colunas da tabela da deireita estaram nulos caso ele não encontra um match com a da esquerda. Faça isso, muda pra left e verifica se vem algo. Se vier algo e esse algo tiver os campos da tabela da direita nulos, basicamente o seu inner join removi ele pois não acontece o match
-
Print não mostra lista completa - Python_Pandas
geovaniif respondeu à TheusBarboza no tópico em Python
Oi! Cara isso é incrivelmente simples de resolver (amém) é uma config do pandas, basicamente ele tem um limte de linhas padrão que ele mostra (e de colunas também!) existe 2 formas de resolver: A que é uma solução de contorno, e a definiditiva a contorno, é vc usar a função head ou tail e informar o numero de linhas ex: #essa opção vai printar as primeiras 50 linhas do datafarme print(faturamentoProduto.head(50)) #essa vai printar as ultimas 50 print(faturamentoPorduto.head(50)) a definitiva, que não necessariamente é a melhor, é alterar o displaymax do pandas pq não necessariamente é a melhor? ora, vi que seu dataframe tem quase 2mil linhas... vc REALMENTE quer printar 2mil linhas? 🤨 bom, fica por sua conta e risco, mas é assim #esse codigo vai tirar esse limite de linhas, mostrando todas elas. #Você também pode simplismente aumentar esse limite, trocando o None por um novo limite, como por exemplo 50 pd.set_option('display.max_rows', None) #deixando o limite de linhas com 50 pd.set_option('display.max_rows', 50) #Para fazer a mesma coisa com colunas, basta usar o max_columns pd.set_option('display.max_columns', None) tenta ai e me avisa! -
claro! vamos supor que o seu dataframe chama-se "df" e que a coluna que é uma data chama-se 'minha_data' df['minha_data'] = (df['minha_data']).astype(str)
- 3 respostas
-
- python
- google sheets
-
(e 2 mais)
Todas as Tags
-
oi! tenta converter a coluna de data do seu dataframe, para ser uma string. Eu tive um problema assim, e, se não me falha a memória, era problema com data.
- 3 respostas
-
- python
- google sheets
-
(e 2 mais)
Todas as Tags
-
Oi! Claro! vc QUASE fez isso. o termo return basicamente retorna um valor lá pra onde a função foi chamada... e é exatamente isso que vc quer! A sua função no momento faz um return de nada, mas se simplismente trocar a palavra print por return, ao invez de printar o texto, ele vai retornar o texto e atribuar para a variavel classificação tenta ai!
-
ali no caso, o metodo resposta_is_valida, era só pra abstrar a validação de uma resposta valida (que basicamente é verificar se o texto é "sim" ou "não")
-
ora, vc ja fez isso no seu script! "Equanto resposta invalida, pergunte!" enquanto...while.... msg_extra = '' while True: resposta = input(msg_extra + 'quer verificar outro triangulo?') if resposta_is_valida(respota): break msg_extra = 'desculpe, resposta invalida! '
-
Oi! Tem um errinho de lógica no seu algoritmo. Vamos fazer um teste de mesa: ok, tem o print bonitinho e entra num loop "infinito" Pega as 3 medidas (2,3,4) verifica se a < b+c e da um resposta adequada pra saber se faz um triangulo (2 < 3+4 -> TRUE, vai printar que é um triangulo) pergunta se quer informar novos valores (vou digitar "batata doce") verifica se a resposta é não. Caso seja, interrompe o loop. (não é, pois digitei batata doce) Verifica se a respota é diferente de "sim". Caso seja, pergunta novamente. (é diferente de sim, então entar no if e pergunta novamente) notifica que nao entendeu e pergunta novamente. (Escrevo "batata frita") fim do codigo, volta para a linha do while true e repete tudo novamente. Pega 3 medidas (10,20,10) 10<20+10? sim, fala que é um triganulo quer mais valores? "n" fala que nao entendeu e pergunta novamente "ñ" volta pro while e repete tudo... Percebeu o erro? A sua verificação verifica só 1 vez, quando na verdade ela deve ficar verificando até digitar algo válido
-
sobre o numero de linhas no losango, basta alterar a iteração de numero de linhas while i < N+1: ### <- essa iteração é do numero de linhas for j in range(1,N-i+1): ## <- essa é do numero de espaços print(" ", end="") for j in range(1, 2*i): # <- essa é pra descobrir onde colocar os * if j==1 or j==2*i-1: print("**", end="") else: print(" ", end="") i = i + 1 j = j + 1 print() # <- esse print sever pra gerar uma linha nova # logo, podemos ver que ele vai até N+1. Quando N é 6, ele vai até 7. Se vc quer mudar pra ir até 5, bastar fazer N-1 na iterção
-
oi! certo, usar o for com range ou usar um while com um contador vc chega no mesmo resultado, é bem facil não usar o range. A gente usa o range quando sabemos a quantidade de iterações que queremos ter, e geralmente usamos o while quando não sabemos, mas, da pra fazer um if dentro do while pra ele ser interrompido. ex: todas as forma abaixo contam até 10. Tenta mudar o seu for range pelo while com a condição. ###### usando range ##### for i in range(10): print(i) ##### usando while com condição ##### contador = 0 while contador < 10: print(contador) contador += 1 #### usando while com break ####### x = 0 while True: if x >= 10: break print(x) x = x + 1 #### usando recursividade ##### def funcao_conta_10(numero): if numero >= 10: return print(numero) funcao_conta_10(numero+1) funcao_conta_10(0)
-
o if tem que ficar logo depois do imout do numero a conta tem que ficar depois do if
-
calma, é melhor vc quebrar em partes, vc precisa pensar num passo a passo, num algoritmo. O problema que você está tendo não é de programação, é de lógica/algoritmo. Vamos fazer pequenos algoritmos e ir evoluindo ele. Bom, vamos pensar assim. Você tem o min e tem o max. Alí vc ja trata, ta perfeito, temos o min e o max, o min é menor que o max e tudo ok. Agora, vc tem que iterar e printar todos os numeros entre o min e o max, incluindo eles mesmo. Agora que vc conseguiu iterar e pegar todos os numeros, dentro dessa iteração, cria outra iteração que pega todos os numeros entre 1 e o numero ta iteração atual. Então se o min é 10 e o max é 15, na primeira iteração, o que pegamos é o 10, e então iteramos pegando todos os numeros de 1 até 10. Certo, agora, nós temos todos os dividendos e todos os divisores. a partir dai é só começar a testar a divisão, e caso ela não aconteça, a gente pega o numero e printa ele
-
kkkkk, certo agora a sua linha da variável calculo está ligeiramente errada. Antes de mais nada, ela deve estar dentro do while. Além disso, a variável calculo em si não precisa existir. Se você trocar a variável calculo pela variável resultado nos dois lugares em que ela foi escrita, ai então fica correto. Você precisar aprender a fazer o que chamamos de "teste de mesa". Basicamente é executar o programa linha a linha no papel, ou na cabeça, pra você entender o que ele está fazendo. Pense que a entrada dos dados via ser [5,2,6,-1] Resultado vale 0 Entra no laço numero recebe 5 numero é != de -1, logo não entra no if resultado recebe ele mesmo (0) * 10 + numero (5), ficando como resultado = 5 repete loop* numero é 2 numero nao é -1, nao entra no if resultado recebe ele mesmo (5 agora) *10 + 2, ficando resultado = 5*10+2,ou seja 50+2, ou seja 52 (olha só!) repete loop* numero é 6 numero não é -1, nao entra no if resultado é 52*10+6 -> 520+6 -> 526 repete loop* numero é -1 numero é -1 !!! entra no if if interrompe o loop resultado, agora fora do loop, tem alor 526 printa resultado!
-
o problema ta na lógica. O que você montou basicamente encontra os números PARES, pois vc verifica se ele tem uma divisão inteiro por 2. Os numeros primos, nenhum numero deve conseguir dividir ele, exceto o 1 e ele mesmo. Basicamente vai ser um while com um while dentro. O Primeiro while vc já fez que é pra iterar sobre os numeros entre o min e o max. O segundo while vai ser pra tentar dividir todos os numeros entre 1 e o próprio numero (no caso o proóprio número é o número do while anterior, que você está chamando de count). Vamos chamar o numero do segundo while de divisor. Numa conta de dividir, temos o dividendo, dessa forma você tem os numeros para tentar dividir vamos supor que o min seja 20 e o max seja 30 você vai tentar dividir o 20 por todos os números anteriores a ele até o 2. Se algum desses números conseguir dividir de forma inteira, ele é primo. No caso do 20, sabemos que ele é divisível por 2, logo já podemos interromper o while do divisor e pular para o próximo dividendo, que é 21. 21 não é divisível por 2, então o while interno vai dar pelo menos "1 volta". Na segunda volta, o nosso divisor vale 3, e 21 é divido por 3, pode interromper e passar pro proximo dividendo. 22 é par, logo sabemos que também não é primo, o que finalmente nos leva pro 23. No 23, nenhum numero que vai de 2 até 22 é consegue dividir ele, ou seja, o while do divisor vai iterar até o fim e não vai conseguir encontra um divisor que divida esse numero, e isso o caracteriza como primo! só printar! Essa é uma lógica "simples" que vc consegue esse resultado. O Problema é que a complexidade é muito alta (O²) o que torna o algoritmo extremamente lento, mas é uma solução válida se o problema não exige uma grande de complexidade máxima (o que provavelmente não exige). da uma digerida e uma pensada nisso 😅
-
agora o seu if está comparando com uma string 🤣, tem que tirar as aspas do -1
-
oi! uma forma mais facil de lidar com isso é salvar numa tabela de banco de dados. Um simples left join excludente resolve o problema. Existe a possibilidade de fazer isso? Se não pode usar banco de dados, uma forma é carregar os CSVs em um dataframe, que é uma estrutura de dados que a lib pandas fornece. Ela é como uma tabela de banco de dados, e então vc consegue fazer a mesma coisa no código python. você até pode trabalhar isso sem pandas, mas como eu sou acostumado a usar ela, acho mais pratico fiz um exemplo simples onde eu simulei uma lista com 3 nomes e outra com 1 nome
-
o input captura o numero como texto. Vc precisa fazer um cast dele para inteito só fazer um int(numero), ou então colocar o input dentro do int(aqui_vai_o_input)