Cómo seleccionar filas y columnas en Pandas
Para seleccionar filas y columnas en Pandas podemos utilizar diversas opciones dependiendo de lo que deseamos lograr. A continuación describimos algunas de las opciones más comunes al trabajar con estructuras de datos Pandas (DataFrame), adelantando que usaremos el método 'loc0, 'iloc', 'query()' y alguno más.
Es importante tener en cuenta que estas son algunas de las opciones disponibles para seleccionar filas y columnas en Pandas, pero hay muchas más. Las indicadas son utilizadas en el día a día cuando creamos un Script Python o trabajamos desarrollando una aplicación con grandes conjuntos de datos en Python.
Vamos a ver cómo seleccionaríamos las columnas con datos numéricos:
Como puedes comprobar, hay varias formas de seleccionar columnas y filas en Pandas. Cada método tiene sus propias ventajas y desventajas según el tipo de trabajo que estamos realizando, así que es importante elegir la opción adecuadas en función de nuestras necesidades en cada momento.
Por ejemplo, si queremos seleccionar solo las columnas 'nombre y 'edad' del DataFrame original y guardar el resultado en una nueva variable, deberíamos hacer lo indicado a continuación:
De esta forma el DataFrame original permanece intacto y el resultado de la operación lo guardamos en una nueva variable por si en algún momento volvemos a necesitar obtener los datos originales. Seleccionar con Pandas filas y columnas en conjuntos de datos es una operación muy importante en el proceso de análisis de datos. Existen varias formas de realizar esta operación y, cada una con sus propias ventajas e inconvenientes. Como con la mayoría de funciones Pandas, elegir la adecuada es fundamental en cada caso particular.
Esto funciona muy bien cuando manejamos muchos datos, es decir, el conjunto de datos es grande y mostrarlos todos es innecesario. Con 'df.head(num_results)' indicamos cuántas filas deseamos ver para verificar que los datos son correctos después de realizar nuestras operaciones con ellos.
Al utilizar el método 'info()' conseguimos visualizar el nombre de las columnas y el tipo de dato contenido en cada columna, permitiendo que podamos hacernos una idea de los datos con los que vamos a trabajar y, así saber si necesitamos convertir los tipos de datos, modificarlos, etc.
- Índice de contenidos:
Método 'loc' para seleccionar filas y columnas por nombre e índice
Utilizar el atributo 'loc': este atributo permite seleccionar filas y columnas utilizando etiquetas. Por ejemplo, si tenemos un DataFrame llamado 'df' y queremos seleccionar la columna 'nombre' y las filas con índice 2 y 5, podemos utilizar el siguiente código:
df.loc[2:5, 'nombre']
Método 'iloc' para seleccionar filas y columnas por índice numérico
Utilizar el atributo 'iloc': permite seleccionar filas y columnas utilizando índices numéricos. Por ejemplo, si queremos seleccionar la columna con índice 1 y las filas con índice 2 y 5 utilizaríamos el siguiente código Python:
df.iloc[2:5, 1]
Seleccionar filas y columnas mediante condicionales
Utilizar máscaras booleanas: esta opción permite seleccionar filas y columna operadores condicionales como mayor que, menor que, igual a, etc.:
df[df['edad'] > 30]
Seleccionar filas y columnas con 'query()' y condicionales mayor que, menor que, igual a...
Además de las opciones mencionadas anteriormente, otra forma de seleccionar filas y columnas en Pandas es utilizando el método 'query()'. Este método permite seleccionar filas utilizando una consulta en lenguaje natural. Por ejemplo, si queremos seleccionar filas en las que la columna 'edad' tiene un valor mayor que 30, podemos utilizar el siguiente código:
df.query('edad > 30')
Seleccionar filas y columnas por tipo de dato
Otra opción es utilizar el método 'select_dtypes()' que permite seleccionar solo las columnas que poseen un tipo de dato específico, es decir, columnas que tienen datos tipo numérico, string, etc.Vamos a ver cómo seleccionaríamos las columnas con datos numéricos:
df.select_dtypes(include=['number'])
Realizar una copia del DataFrame original
También es importante tener en cuenta que, en general, las operaciones de selección de filas y columnas en DataFrames Pandas no modifican el DataFrame original, sino que devuelven una nueva vista del mismo. Esto significa que, si deseamos guardar los cambios realizados en el dataframe, es necesario asignar el resultado de la operación a una nueva variable o, en su defecto, utilizar el método 'pd.DataFrame.copy()' para crear una copia del DataFrame original.Por ejemplo, si queremos seleccionar solo las columnas 'nombre y 'edad' del DataFrame original y guardar el resultado en una nueva variable, deberíamos hacer lo indicado a continuación:
df_new = df[['nombre', 'edad']]
Obtener varias columnas del DataFrame
# Obtener columnas innecesarias
data_columns = df_new[['nombre', 'edad']]
Mostrar primeras filas del DataFrame indicando el número de ellas
Si deseamos imprimir una muestra del conjunto de datos en lugar de tener que mostrar todo el DataFrame, también podemos hacerlo de una forma sencilla.
print(data_columns.head(1))
--------------------
columna 1 columna 2 columna 3
0 1.0 2.0 0.0
Mostrar nombres de columnas y tipo de dato del DataFrame
Otra necesidad habitual es conocer el nombre de las columnas y el tipo de dato que contiene cada una de ellas. Si partimos de un DataFrame que hemos creado de forma manual conoceremos de antemano todos los detalles, pero en el trabajo real, recibiremos un conjunto de datos, generalmente extenso, del que no conocemos muchos detalles.
print(data_columns.info())
--------------------
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 columna 1 3 non-null float64
1 columna 2 3 non-null float64
2 columna 3 3 non-null float64
dtypes: float64(3)
memory usage: 200.0 bytes
None
Comentarios del artículo "Cómo seleccionar filas y columnas en Pandas"
¿Te ha gustado la información? Coméntanos tus opiniones, dudas y sugerencias: