Selección de Datos en Pandas

PandasBeginner
Practicar Ahora

Introducción

¡Bienvenido al laboratorio de Selección de Datos con Pandas! Pandas es una potente biblioteca para la manipulación y el análisis de datos en Python. Una de las tareas más fundamentales en el análisis de datos es seleccionar subconjuntos específicos de tus datos. Ya sea que necesites examinar una sola columna, unas pocas filas específicas o una porción compleja de tu conjunto de datos, Pandas proporciona una variedad de métodos flexibles y eficientes para realizar el trabajo.

En este laboratorio, trabajarás con un conjunto de datos de muestra de información de estudiantes. Aprenderás a:

  • Seleccionar columnas individuales y múltiples utilizando la notación de corchetes.
  • Seleccionar filas por sus etiquetas utilizando el accesor .loc.
  • Seleccionar filas por su posición entera utilizando el accesor .iloc.
  • Combinar la selección de filas y columnas para extraer porciones precisas de datos.

Al final de este laboratorio, tendrás una sólida comprensión de las técnicas principales de selección de datos en Pandas, que son esenciales para cualquier tarea relacionada con datos.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 90%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Seleccionar una sola columna usando notación de corchetes

En este paso, aprenderás la forma más común de seleccionar una sola columna de un DataFrame de Pandas. Esto se hace utilizando la notación de corchetes [], similar a como accederías a un valor en un diccionario de Python.

Primero, necesitamos cargar nuestros datos del archivo students.csv en un DataFrame. Luego, podemos seleccionar una columna pasando su nombre como una cadena de texto dentro de los corchetes.

Por favor, abre el archivo main.py desde el explorador de archivos a la izquierda y añade el siguiente código.

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the 'name' column
name_column = df['name']

## Print the selected column
print(name_column)

Ahora, ejecutemos el script. Abre una terminal en el WebIDE y ejecuta el siguiente comando:

python3 main.py

Verás la salida, que es un objeto Series de Pandas que contiene todos los nombres de la columna 'name'.

0      Alice
1        Bob
2    Charlie
3      David
4        Eve
Name: name, dtype: object

Como puedes ver, seleccionar una sola columna devuelve una Series, que es esencialmente un array unidimensional etiquetado.

Seleccionar múltiples columnas mediante una lista

En este paso, ampliaremos la técnica anterior para seleccionar varias columnas a la vez. Para hacer esto, en lugar de pasar una sola cadena de texto, pasas una lista de nombres de columnas dentro de los corchetes de selección. Observa el uso de corchetes dobles [[]]: los corchetes exteriores son para la selección en sí, y los corchetes interiores crean la lista de columnas.

Modifiquemos el archivo main.py para seleccionar las columnas name y score.

Actualiza tu main.py con el siguiente código:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the 'name' and 'score' columns
subset = df[['name', 'score']]

## Print the resulting subset DataFrame
print(subset)

Ahora, ejecuta el script de nuevo desde tu terminal:

python3 main.py

La salida será un nuevo DataFrame que contiene solo las columnas que especificaste.

      name  score
0    Alice     85
1      Bob     92
2  Charlie     95
3    David     88
4      Eve     90

A diferencia de seleccionar una sola columna, que devuelve una Series, seleccionar varias columnas devuelve un nuevo DataFrame.

Usar loc para seleccionar filas por etiqueta

En este paso, aprenderás cómo seleccionar datos basándote en su etiqueta utilizando el accesor .loc. El indexador .loc se basa principalmente en etiquetas, lo que significa que utilizas los nombres o etiquetas del índice para realizar selecciones. Por defecto, cuando cargas un CSV sin especificar una columna de índice, Pandas asigna un índice entero predeterminado que comienza desde 0. Estos enteros actúan como las etiquetas para las filas.

Usemos .loc para seleccionar la tercera fila de nuestro DataFrame, que tiene la etiqueta de índice 2.

Actualiza tu archivo main.py con el siguiente código:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the row with index label 2
charlie_data = df.loc[2]

## Print the selected row
print(charlie_data)

Ejecuta el script desde tu terminal:

python3 main.py

La salida será una Series que contiene todos los datos de la fila con la etiqueta de índice 2.

name        Charlie
age              21
major     Mathematics
score            95
Name: 2, dtype: object

Esto muestra los datos del estudiante "Charlie". Usar .loc es una forma potente de acceder a filas cuando conoces sus etiquetas.

Usar iloc para seleccionar filas por posición entera

En este paso, exploraremos otro método de selección: .iloc. El indexador .iloc se basa principalmente en la posición entera. Funciona igual que el slicing de listas de Python, donde utilizas índices enteros para acceder a los elementos. Esto es diferente de .loc, que utiliza etiquetas. Aunque nuestras etiquetas de índice predeterminadas también son enteros, la distinción se vuelve crucial cuando tienes etiquetas no enteras.

Usemos .iloc para seleccionar la primera fila del DataFrame, que se encuentra en la posición entera 0.

Actualiza tu archivo main.py con el siguiente código:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the first row (at integer position 0)
first_row = df.iloc[0]

## Print the selected row
print(first_row)

Ejecuta el script desde tu terminal:

python3 main.py

La salida será una Series que contiene los datos del primer estudiante, "Alice".

name       Alice
age           20
major    Physics
score         85
Name: 0, dtype: object

Recuerda la diferencia clave: .loc es para etiquetas, .iloc es para posiciones enteras.

Cortar filas y columnas con loc

En este paso final, combinarás lo aprendido para realizar selecciones más potentes. Tanto .loc como .iloc pueden seleccionar filas y columnas simultáneamente utilizando la sintaxis df.loc[selector_fila, selector_columna].

Usaremos .loc para seleccionar un corte (slice) de filas y un corte de columnas. Una característica clave de .loc es que cuando cortas con etiquetas (por ejemplo, 1:3), la etiqueta final (3) es inclusiva.

Seleccionemos las filas desde la etiqueta de índice 1 hasta 3 y las columnas desde name hasta major.

Actualiza tu archivo main.py con el siguiente código:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select rows with index labels 1 through 3 (inclusive)
## and columns from 'name' to 'major' (inclusive)
data_slice = df.loc[1:3, 'name':'major']

## Print the resulting slice
print(data_slice)

Ejecuta el script desde tu terminal:

python3 main.py

La salida es un nuevo DataFrame que es un "corte" específico de los datos originales.

      name  age           major
1      Bob   22  Computer Science
2  Charlie   21       Mathematics
3    David   23       Engineering

Esta técnica es extremadamente útil para aislar regiones específicas de tu conjunto de datos para su análisis.

Resumen

¡Felicitaciones por completar el laboratorio! Ha aprendido con éxito los métodos fundamentales para seleccionar datos en Pandas.

En este laboratorio, practicó:

  • Seleccionar una sola columna usando la notación de corchetes df['columna'], que devuelve una Series.
  • Seleccionar múltiples columnas usando una lista en la notación de corchetes df[['col1', 'col2']], que devuelve un DataFrame.
  • Seleccionar filas por su etiqueta con .loc, que es potente para la indexación basada en etiquetas.
  • Seleccionar filas por su posición entera con .iloc, que sigue las reglas estándar de slicing de Python.
  • Combinar selectores de filas y columnas con .loc para extraer cortes bidimensionales específicos de sus datos.

Dominar estas técnicas de selección es un primer paso crítico para ser competente con Pandas en el análisis y manipulación de datos. Ahora puede acceder con confianza a cualquier parte de su DataFrame para inspeccionarlo, analizarlo o modificarlo.