Cómo obtener el índice de todas las filas cuya columna particular satisface la condición dada en Pandas

Suraj Joshi 30 enero 2023
  1. Operación de indexación simple para obtener el índice de todas las filas cuya columna particular satisface la condición dada
  2. Método np.where() para obtener el índice de todas las filas cuya columna particular satisface la condición dada
  3. pandas.DataFrame.query() para obtener índices de todas las filas cuya columna particular satisface la condición dada
Cómo obtener el índice de todas las filas cuya columna particular satisface la condición dada en Pandas

Podemos obtener el índice de todas las filas cuya columna particular satisface una condición dada en Pandas usando una operación de indexación simple. También podríamos encontrar sus índices utilizando el método where() del paquete NumPy y el método query() del objeto DataFrame.

Operación de indexación simple para obtener el índice de todas las filas cuya columna particular satisface la condición dada

El uso de una operación de indexación simple puede lograr la tarea de obtener el índice de filas cuya columna particular cumple con la condición dada.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = df[df["Sales"] >= 300].index.tolist()
print(reqd_Index)

Producción :

[1, 2, 4, 5]

Aquí, df['Sales']>=300 da una serie de valores booleanos cuyos elementos son True si su columna Sales tiene un valor mayor o igual a 300.

Podemos recuperar el índice de filas cuyo valor de Sales es mayor o igual a 300 usando df[df['Sales']>=300].index.

Finalmente, el método tolist() convierte todos los índices en una lista.

Método np.where() para obtener el índice de todas las filas cuya columna particular satisface la condición dada

np.where() toma la condición como entrada y devuelve los índices de elementos que satisfacen la condición dada. Por lo tanto, podríamos usar np.where() para obtener índices de todas las filas cuya columna particular satisface la condición dada.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)

Producción :

[array([1, 2, 4, 5])]

Esto genera índices de todas las filas cuyos valores en la columna Sales son mayores o iguales a 300.

pandas.DataFrame.query() para obtener índices de todas las filas cuya columna particular satisface la condición dada

pandas.DataFrame.query() devuelve DataFrame resultante de la expresión de consulta proporcionada. Ahora, podemos usar el atributo index de DataFrame para devolver índices de todas las filas cuya columna particular satisface la condición dada.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_index = df.query("Sales == 300").index.tolist()
print(reqd_index)

Producción :

[1, 4, 5]

Devuelve la lista de índices de todas las filas cuya columna particular satisface la condición dada Ventas == 300.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas DataFrame

Artículo relacionado - Pandas DataFrame Row

Artículo relacionado - Pandas DataFrame Column