Stephany Postado Fevereiro 27, 2022 Postado Fevereiro 27, 2022 Olá, pessoal. Estou tentando fazer um código em Python usando a biblioteca Pandas que consiga adicionar um separador a números das colunas de minha planilha que estão aglutinados, por exemplo, os dados estão organizados da seguinte forma: 999, 888, 777, 555, 666 ... Gostaria que eles pudessem ficar separados por algum separador como ",' (Vírgula) ou "/" (Barra) e ficassem dessa forma 5/5/5, 8/8/8 ou 6,6,6. Tentei usar o comando split mas não obtive êxito, pois pelo que li ele só separa dados que já contém separadores, nem que o separador seja um espaço em branco, e meus números não tem nem o espaço em branco para separá-los. Se alguém puder me ajudar nessa agradeço.
geovaniif Postado Fevereiro 28, 2022 Postado Fevereiro 28, 2022 vc já tentou tratar ele como string, e então iterar sobre ele colando o separador? algo assim '/'.join('666'[i] for i in range(0, len('666'))) 1
Marcio Henrique Hirata Postado Fevereiro 28, 2022 Postado Fevereiro 28, 2022 Bom dia Stephany. Existem várias alternativas para o tratamento de strings, você precisa identificar nos seus dados um padrão, que possa ser utilizado... como você mencionou, o split necessita de um separador. Uma outra alternativa seria buscar pelo número de caracteres (de um em um ou de dois em dois...), aí poderia usar "string[0:n]" (onde 0 é a posição inicial e n é o número de caracteres que deseja buscar). Tudo depende do padrão que vc identificar. Espero ter ajudado!!! 😃 1 1
Stephany Postado Março 1, 2022 Autor(a) Postado Março 1, 2022 Em 28/02/2022 at 09:05, geovaniif disse: vc já tentou tratar ele como string, e então iterar sobre ele colando o separador? algo assim '/'.join('666'[i] for i in range(0, len('666'))) Olá, Geovani, bom dia! Ainda não tentei essa opção, vou testar e volto aqui para dizer se deu certo. 1
Stephany Postado Março 1, 2022 Autor(a) Postado Março 1, 2022 Em 28/02/2022 at 09:07, Marcio Henrique Hirata disse: Bom dia Stephany. Existem várias alternativas para o tratamento de strings, você precisa identificar nos seus dados um padrão, que possa ser utilizado... como você mencionou, o split necessita de um separador. Uma outra alternativa seria buscar pelo número de caracteres (de um em um ou de dois em dois...), aí poderia usar "string[0:n]" (onde 0 é a posição inicial e n é o número de caracteres que deseja buscar). Tudo depende do padrão que vc identificar. Espero ter ajudado!!! 😃 Oi, Marcio, bom dia! Você ajudou sim, vou testar a sua dica e a do Geovani que foi postada anteriormente e se der certo postarei o código aqui para mostrar como ficou. Grata! 1
Stephany Postado Março 1, 2022 Autor(a) Postado Março 1, 2022 (editado) Pessoal, a dúvida continua. Meu código segue abaixo: #Primeiro importei a lib Pandas: import pandas as pd #Subi a planilha para minha IDE: plan = pd.read_excel('pro.xlsx') #Depois dei um head para ver se o upload da planilha tinha sido feito corretamente: plan.head(8) #Usei a função .info para obter informações dos dados da minha planilha e todos estão no tipo Object: plan.info() #E após essa seq de passos eu defini a variável "ano" para ler duas colunas de minha planilha e também dei um head e um dtype para saber se estava tudo ok: ano = plan[['um', 'dois']] ano.head() ano.dtypes # E a parte mais importante e que está dando errado ;'( - Gostaria que a estrutura do laço lesse minha variável ano e imprimisse as colunas de minha tabela com seus números 999 - 777, como 9/9/9 ou 7/7/7: ano = plan[['um', 'dois']] for ano in range(1, 500, len('999')): print(('/').join(ano)) P.S: Relevem se tiver erro grandes de código, sou iniciante e não sei onde estou errando, se puderem ajudar agradeço. 🙂 O erro que está dando é esse: TypeError: 'int' object is not subscriptable. Editado Março 1, 2022 por Stephany
geovaniif Postado Março 2, 2022 Postado Março 2, 2022 o código que vc descreveu não condiz com o que orientei, acho que houve um confusão ali. primeiramente, essa variavel "ano" me parece um dataframe de 2 colunas, e for o caso, você está sobrescrevendo ela sendo um contador do range. quando vc for iterar sobre um dataframe, é preciso usar o iterrows ex: for indice, linha in ano.iterrows(): eu recomendo algo assim: ano = plan[['um', 'dois']] ano.apply(lambda x: ['/'.join(row) for row in x]) ) mas pode fazer com for normal também. Faz o teste ai e me avisa no que deu 🤞 1
Postagens Recomendadas
Crie uma conta ou entre para comentar 😀
Você precisa ser um membro para deixar um comentário.
Crie a sua conta
Participe da nossa comunidade, crie sua conta.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.