"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo filtrar eficientemente el marco de datos o series de Pandas con múltiples condiciones?

¿Cómo filtrar eficientemente el marco de datos o series de Pandas con múltiples condiciones?

Publicado el 2024-11-01
Navegar:876

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

Filtrado eficiente de series o marcos de datos de Pandas con múltiples condiciones

Pandas proporciona varios métodos para filtrar datos, incluidos reindex(), apply() y map() . Sin embargo, cuando se aplican varios filtros, la eficiencia se convierte en una preocupación.

Para un filtrado optimizado, considere utilizar la indexación booleana. Tanto Pandas como Numpy admiten la indexación booleana, que opera directamente en la matriz de datos subyacente sin crear copias innecesarias.

Aquí hay un ejemplo de indexación booleana:

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

Esta expresión devuelve una serie Pandas que contiene solo las filas donde los valores de la columna 'col1' son mayores o iguales a 1.

Para aplique múltiples filtros, use los operadores lógicos '&' (Y) y '|' (O). Por ejemplo:

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

Esta expresión devuelve un DataFrame que contiene solo las filas donde los valores de la columna 'col1' están entre 1 y 1 inclusive.

Para funciones auxiliares, considere definir funciones que tomen un DataFrame y devuelvan una serie booleana, lo que le permitirá combinar múltiples 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 introduce el método query(), que proporciona una forma más eficiente de expresar condiciones de filtrado complejas. Suponiendo identificadores de columna válidos, el siguiente código filtra DataFrame df según múltiples condiciones:

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

En resumen, la indexación booleana ofrece un método eficiente para aplicar múltiples filtros a Pandas DataFrames o Series sin crear copias innecesarias. Utilice operadores lógicos y funciones auxiliares para combinar varios filtros y obtener una funcionalidad ampliada.

Declaración de liberación Este artículo se reimprime en: 1729394837 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3