1
resposta

Alterar valores de um DataFrame

Pessoal, boa tarde.

Estou trabalhando em um projeto na faculdade relacionado ao curso de pandas. Gostaria de saber o seguinte:

Existe alguma maneira de, dentro do dataframe, alterar valores de uma coluna e linhas especificas? por exemplo, tenho uma coluna Frequencia, uma Medicao e outra Valor.

preciso somar o valor de uma constante em dados da coluna Valor que tenham uma frequência maior que certo nivel, e uma medicao maior que certo nivel.

como faço isso? pensei em utilizar df.apply junto de lambda, mas nao estou conseguindo.

valeu!

1 resposta

Olá Guilherme, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Para o projeto descrito, onde queremos adicionar uma constante aos valores de uma coluna apenas para as linhas que atendem a determinadas condições, podemos utilizar a função apply junto com uma função lambda que verifica as condições e aplica a soma apenas quando elas são atendidas. Deixo abaixo, um exemplo de código:

import pandas as pd

# Exemplo de DataFrame
data = {'Frequencia': [10, 20, 30, 40, 50],
        'Medicao': [15, 25, 35, 45, 55],
        'Valor': [100, 200, 300, 400, 500]}

df = pd.DataFrame(data)

# Defina os níveis de frequência e medição
nivel_frequencia = 30
nivel_medicao = 40
constante = 50

# Use a função apply com uma função lambda para atualizar os valores
df['Valor'] = df.apply(lambda row: row['Valor'] + constante if row['Frequencia'] > nivel_frequencia and row['Medicao'] > nivel_medicao else row['Valor'], axis=1)

df

Resultado

Imagem contendo o resultado da execução do código anterior

No código acima, definimos os níveis de frequência (nivel_frequencia), medição (nivel_medicao) e a constante que desejamos adicionar aos valores. A função apply é usada para aplicar a lógica em cada linha do DataFrame, verificando as condições e somando a constante aos valores quando as condições são atendidas.

Todavia, vale ressaltar que como é um assunto externo ao curso e que não tenho acesso ao cenário completo do projeto, outros testes podem ser necessários a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!