"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como conseguir a criação de colunas condicionais: explorando If-Elif-Else no Pandas DataFrame?

Como conseguir a criação de colunas condicionais: explorando If-Elif-Else no Pandas DataFrame?

Publicado em 2024-11-05
Navegar:801

How to Achieve Conditional Column Creation: Exploring If-Elif-Else in Pandas DataFrame?

Criando uma coluna condicional: If-Elif-Else em Pandas

O problema em questão solicita que uma nova coluna seja adicionada a um DataFrame com base em uma série de critérios condicionais. O desafio está em implementar essas condições, mantendo a eficiência e a legibilidade do código.

Solução usando aplicação de função

Uma abordagem envolve a criação de uma função que mapeia cada linha para o resultado desejado com base nas condições:

def f(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1

df['C'] = df.apply(f, axis=1)

Este método é legível e fácil de implementar, mas não é vetorizado e pode levar a problemas de desempenho com grandes conjuntos de dados.

Solução vetorizada

Para eficiência, uma abordagem vetorizada usando a função np.where do NumPy é recomendada:

df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] > df['B'], 1, -1))

Esta operação realiza a seleção condicional elemento a elemento no DataFrame, resultando em uma nova coluna com os valores desejados.

Essa abordagem vetorizada oferece benefícios significativos de desempenho em comparação com o método baseado em função. Também permite uma implementação mais concisa e legível dos critérios condicionais.

Declaração de lançamento Este artigo foi reimpresso em: 1729378216 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3