A criação de colunas adicionais contendo dados concatenados de outras colunas ou calculados de outras colunas é uma boa prática? Embora economize processamento eu acho que pode levar a inconsistências na base por conta de dados desatualizados.
A criação de colunas adicionais contendo dados concatenados de outras colunas ou calculados de outras colunas é uma boa prática? Embora economize processamento eu acho que pode levar a inconsistências na base por conta de dados desatualizados.
Olá Fabio.
Excelente pergunta.
Sim, pode levar a inconsistências.
Criar colunas adicionais que dependem de outras aumenta o risco de dados desatualizados se as colunas originais forem alteradas, mesmo que economize processamento.
É importante garantir que qualquer coluna derivada seja atualizada automaticamente ou recalculada quando necessário.
Para evitar inconsistências ao criar colunas derivadas no Pandas, você pode usar algumas estratégias:
Em vez de armazenar o valor derivado, calcule-o sempre que necessário:
import pandas as pd
df = pd.DataFrame({
'preco': [100, 200, 150],
'quantidade': [2, 1, 3]
})
# Calcula total sem criar coluna permanente
total = df['preco'] * df['quantidade']
print(total)
Sempre que atualizar as colunas base, recalcular a coluna derivada:
df['total'] = df['preco'] * df['quantidade']
# Se alterar preço
df.loc[0, 'preco'] = 120
df['total'] = df['preco'] * df['quantidade'] # recalcula
Criar funções para retornar valores derivados evita inconsistência:
def calcular_total(df):
return df['preco'] * df['quantidade']
total = calcular_total(df)
Se o custo de cálculo for baixo, é mais seguro não criar colunas extras, apenas calcular quando necessário.
Confere ai e qualquer duvida pode perguntar.
Bons estudos.