Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como cortar o tamanho de todos os itens de uma coluna?

Tenho a seguinte Tabela:

svidazimtime_utc
G22127_2014_02_26_00:00:00
G19268_2014_02_26_00:00:01
G3304_2014_02_26_00:00:02
G20263_2014_02_26_00:00:03

Preciso recortar retirar o primeiro "_" de time_utc de modo que fique assim:

svidazimtime_utc
G221272014_02_26_00:00:00
G192682014_02_26_00:00:01
G33042014_02_26_00:00:02
G202632014_02_26_00:00:03

Tentei utilizar o [1:-1] mas apenas funciona se eu selecionar um item, como fazer para a lista inteira?

3 respostas

Como você não colocou código e o post está no tópico geral de python, vou mostrar uma solução com python puro.

O slice para tirar o primeiro caractere é '[1:]', ou seja, do segundo elemento até o final.

Considerando time_utc uma lista com elementos string, ou seja, '_2014_02_26_00:00:00' :

time_utc = [elemento[1:] for elemento in time_utc]

Usando enumerate:

for indice, elemento in enumerate(time_utc):
    time_utc[indice] = elemento[1:]

Depois avisa se deu certo.

Não consegui aplicar o slice Miguel, era minha primeira opção mas falhei..

import pandas as pd

df1=pd.read_csv('C:/...26_02_2014_INCO_0h_0h10m.txt')

columns= df1.filter(like=' time_utc')
for column in columns:
    df1[column]= df1[column].str.replace('-','_').str.replace(' ','_').str.replace('_2014','2014')

Através do replace consegui fazer chegar no resultado que queria, porém acredito não ser tão eficiente. Pensei em usar uma função com o lambda percorrendo cada linha também. Se tiver alguma dica mais eficiente ou diferente seria interessante!

solução!
import pandas as pd

df1 = pd.read_csv('dados.csv')

columns= df1.filter(like=' time_utc')

for column in columns:
    df1[column]= df1[column].str[1:]

Ou ainda:

import pandas as pd

df1 = pd.read_csv('dados.csv')

columns= df1.filter(like=' time_utc')

for column in columns:
    df1[column]= df1[column].str.slice(1) # dá no mesmo

Sobre performance, por ter menos código, deve ser melhor. Eu não posso afirmar com certeza, pois não tenho experiência/conhecimento com gerenciamento de recursos.

Para eventuais consultas (caso precise de mais métodos de string: https://pandas.pydata.org/docs/reference/api/pandas.Series.str.slice.html

OBS: Obrigado pelo tópico. Minha experiência com pandas por enquanto foi só dos cursos da Alura, e graças a sua dúvida, pude aprender mais.