import pandas as pd
import numpy as np
data = {'Name':['Tom', 'Tom', 'Jack', 'Terry'], 'Age':[20, 21, 19, 18]}
df = pd.DataFrame(data)
Digamos que eu tenho um quadro de dados que se parece com isso. Estou tentando descobrir como verificar a coluna Nome quanto ao valor 'Tom' e, se a encontrar pela primeira vez, substitua-a pelo valor 'FirstTom' e, na segunda vez que aparecer, substitua-a pelo valor 'SecondTom' . Como você consegue isso? Eu usei o método de substituição antes, mas apenas para substituir todos os Toms por um único valor. Não quero adicionar um 1 no final do valor, mas altere completamente a string para outra coisa.
Editar:
Se o df se parecer mais com isso abaixo, como verificaríamos o Tom na primeira e na segunda coluna e depois substituiríamos a primeira instância pelo FirstTom e a segunda instância pelo SecondTom
data = {'Name':['Tom', 'Jerry', 'Jack', 'Terry'], 'OtherName':[Tom, John, Bob,Steve]}
I don't want to add a 1 on the end of the value
EDIT: Para contagem duplicada por linhas, use:
Use
GroupBy.cumcount
comSeries.map
, mas apenas para valores duplicadosSeries.duplicated
:O dicionário dinâmico deve ser como:
fonte
transform
fonte