Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

juntar duas colunas, substituindo somente pelos valores não nulos.

Olá, alguém poderia me ajudar?

Estou com uma duvida, tenho um df com algumas colunas, entre elas duas que gostaria de juntar.

Existe uma coluna principal e outra que tem alguns valores que atualizam a primeira coluna.

Quero basicamente substituir a coluna principal com os valores da segunda coluna sempre que não for nan.

(uso pandas-python)

Como fazer isso? Agradeço!!!

2 respostas
solução

Olá Erica,

Você quer pegar todos os valores da segunda coluna que são diferentes de nan e colocar na primeira coluna ou buscar os valores nan da primeira coluna e substituir por um valor da segunda?

No primeiro caso você pode fazer assim:

df['col1'] = np.where(df['col2'].notnull(), df['col2'], df['col1'])

Como alternativa você pode usar o fillna para substituir os valores na de uma coluna pelo valor de outra coluna:

# col1 é a coluna com valores nan
# col2 contém os valores para substituir os nan em col1
df['col1'] = df['col1'].fillna(df['col2'])

No primeiro código que mostrei todos os valores diferentes de nan da segunda coluna são salvos na primeira coluna, e onde tem na é utilizado o valor já existente da primeira coluna.

No segundo código apenas os valores na da primeira coluna são substituídos por um valor da segunda coluna.

Espero ter ajudado, qualquer dúvida é só falar!

Uauu, que incrível! Obrigada pela agilidade, melhor fórum!!!