Jump to content

COMO ADICIONAR UM SEPARADOR EM DADOS QUE ESTÃO JUNTOS EM UMA MESMA CÉLULA DE UMA PLANILHA


Stephany

Postagens Recomendadas

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. 

Link to comment
Compartilhe em outros sites

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!!! 😃

  • Curtir 1
  • Amei 1
Link to comment
Compartilhe em outros sites

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. 

  • Curtir 1
Link to comment
Compartilhe em outros sites

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! 

  • Curtir 1
Link to comment
Compartilhe em outros sites

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 por Stephany
Link to comment
Compartilhe em outros sites

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 🤞

  • Curtir 1
Link to comment
Compartilhe em outros sites

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.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora
×
×
  • Create New...