Búsqueda de valores en un DataFrame de Pandas

Foto de Annie Williams en Unsplash

Hoy en la Buhardilla veremos las distintas opciones de búsqueda que tiene incorporado Pandas para poder navegar por sus DataFrames y encontrar la información que deseemos. Cuando trabajaos con grandes volúmenes de datos, buscar la información de manera ‘manual’ no es una opción viable. Por esta razón es importante conocer las distintas maneras de encontrar los valores deseados en el DataFrame que estemos usando. Los DataFrames son la estructura de datos fundamental en Pandas, y son una matriz bidimensional de datos donde cada fila de datos dispone de un índice y cada columna un nombre. Cada columna en el DataFrame es una serie de Pandas (lo que vendría a ser una lista de valores de una única dimensión). Hay distintos métodos para buscar información en Pandas, entre ellos los más usados son la búsqueda por índice o posición, la selección por etiqueta o valor. A continuación vamos a explicar cada una de estas técnicas de búsqueda, así que sin más dilación, Empecemos!!!

Supongamos que tenemos el Dataframe siguiente:

Columna AColumna BColumna CColumna D
1A1B1C1D1
2A2B2C2D2
3A3B3C3D3
4A4B4C4D4

Por ejemplo, para seleccionar una fila específica en un DataFrame, se puede utilizar el método .loc[], que permite seleccionar filas y columnas por etiqueta o nombre. Por otro lado, el método .iloc[] permite seleccionar filas y columnas por posición o índice.

El método .iloc[] en Pandas se utiliza para seleccionar filas y columnas de un DataFrame por posición o índice. Este método toma como argumentos los índices de fila y columna que se quieren seleccionar y devuelve un nuevo DataFrame. Se pueden combinar ambas sintaxis para seleccionar filas y columnas al mismo tiempo. Por ejemplo, data.iloc[<fila_inicio>:<fila_fin>, <columna_inicio>:<columna_fin>] seleccionará un subconjunto del DataFrame que incluye las filas y columnas especificadas. Es importante recordar que en Python y por extensión en Pandas las enumeraciones siempre empiezan por el índice 0.

Para seleccionar la primera fila de un DataFrame, se puede utilizar df.iloc[0,:].

Columna AColumna BColumna CColumna D
1A1B1C1D1


Para seleccionar las primeras tres filas de un DataFrame, se puede utilizar df.iloc[0:3,:].

Columna AColumna BColumna CColumna D
1A1B1C1D1
2A2B2C2D2
3A3B3C3D3


Para seleccionar la última fila de un DataFrame, se puede utilizar df.iloc[-1,:].

Columna AColumna BColumna CColumna D
4A4B4C4D4


Para seleccionar la segunda columna de un DataFrame, se puede utilizar df.iloc[:,1].

Columna B
1B1
2B2
3B3
4B4


Para seleccionar las columnas de la segunda a la cuarta de un DataFrame, se puede utilizar df.iloc[:,1:].

Columna BColumna CColumna D
1B1C1D1
2B2C2D2
3B3C3D3
4B4C4D4

El método .loc en Pandas se utiliza para seleccionar filas y columnas de un DataFrame por etiquetas o nombres. Este método toma como argumentos los nombres de las filas y columnas que se quieren seleccionar y devuelve un nuevo DataFrame. Es importante tener en cuenta que el método .loc utiliza la indexación por etiquetas o nombres, por lo que los nombres de fila y columna deben ser únicos, puesto que si no solo nos va a devolver el primer valor que coincida con el parámetro buscado.
Para seleccionar todas las filas y una columna específica de un DataFrame por etiquetas, se puede utilizar la sintaxis df.loc[:, ‘columna’]. Con esta metodología lo que le decimos es que seleccione todas las filas (recordemos que si no se especifica ni inicio ni final la operación ‘:’ seleccionará todos los parámetros).

Para seleccionar la columna C de nuestro DataFramem utilizaremos la sintaxis df.loc[:, ‘ColumnaC’]

Columna C
1C1
2C2
3C3
4C4

Para seleccionar varias filas y varias columnas de un DataFrame por etiquetas, se puede utilizar la sintaxis df.loc[[‘fila1’, ‘fila2’], [‘columna1’, ‘columna2’]].

En nuestro caso particular, si queremos quedarnos unicamente con las filas 2 y 3 de las columnas C y D realizaremos la consulta df.loc[[‘2’, ‘3’], [‘ColumnaC’, ‘ColumnaD’]]. Como estamos trabajando por etiquetas suponemos que en este caso los indicadores de columna están introducidos como si fueran un string

Columna CColumna D
2C2D2
3C3D3

Imaginemos que tenemos el mismo caso anterior, pero esta vez las etiquetas de las filas en vez de números son colores y tenemos ‘Rojo’ y ‘Verde’ para la fila 2 y fila 3, respectivamente. Con este caso el ejemplo anterior sería df.loc[[‘Rojo’, ‘Verde’], [‘ColumnaC’, ‘ColumnaD’]]

Columna CColumna D
RojoC2D2
VerdeC3D3

En esta entrada hemos visto los métodos básicos para poder empezar a buscar y filtrar datos en un DataFrame de Pandas. Ya sea que busquemos aislar una única columna como también un conjunto de ellas, también hemos aplicado los mismos métodos para la selección de filas concretas, tanto a partir de los índices como a partir de las etiquetas o nombres, tanto de las filas como de las columnas. Si bien estos métodos son válidos y se pueden aplicar en DataFrame de cualquier tamaño, la librería de Pandas tiene más herramientas para poder hacer búsquedas más complejas o exhaustivas. No obstante, gran parte de ellas están basadas en los métodos que hemos visto en esta entrada y comprenderlos es fundamental para poder trabajar con los datos que podamos encontrar en un DataFrame

Un saludo y hasta la próxima aventura!!!

Deja un comentario

Blog de WordPress.com.

Subir ↑