"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 filtrar com eficiência o DataFrame ou série do Pandas com múltiplas condições?

Como filtrar com eficiência o DataFrame ou série do Pandas com múltiplas condições?

Publicado em 01/11/2024
Navegar:739

How to Efficiently Filter Pandas DataFrame or Series with Multiple Conditions?

Filtragem eficiente de dataframe ou série do Pandas com múltiplas condições

O Pandas fornece vários métodos para filtrar dados, incluindo reindex(), apply() e map() . No entanto, ao aplicar vários filtros, a eficiência se torna uma preocupação.

Para uma filtragem otimizada, considere a utilização de indexação booleana. Tanto o Pandas quanto o Numpy suportam indexação booleana, que opera diretamente na matriz de dados subjacente sem criar cópias desnecessárias.

Aqui está um exemplo de indexação booleana:

df.loc[df['col1'] >= 1, 'col1']

Esta expressão retorna uma série Pandas contendo apenas as linhas onde os valores na coluna 'col1' são maiores ou iguais a 1.

Para aplique vários filtros, use os operadores lógicos '&' (AND) e '|' (OU). Por exemplo:

df[(df['col1'] >= 1) & (df['col1'] <=1 )]

Esta expressão retorna um DataFrame contendo apenas as linhas onde os valores na coluna 'col1' estão entre 1 e 1 inclusive.

For funções auxiliares, considere definir funções que usam um DataFrame e retornam uma série booleana, permitindo combinar vários filtros usando operadores lógicos.

def b(x, col, op, n):
    return op(x[col],n)

def f(x, *b):
    return x[(np.logical_and(*b))]

Pandas 0.13 introduz o método query(), que fornece uma maneira mais eficiente de expressar condições de filtragem complexas. Assumindo identificadores de coluna válidos, o código a seguir filtra o DataFrame df com base em várias condições:

df.query('col1 <= 1 & 1 <= col1')

Em resumo, a indexação booleana oferece um método eficiente para aplicar vários filtros a DataFrames ou séries do Pandas sem criar cópias desnecessárias. Use operadores lógicos e funções auxiliares para combinar vários filtros para funcionalidade estendida.

Declaração de lançamento Este artigo foi reimpresso em: 1729394837 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