Seleccionar datos es una operación fundamental en cualquier análisis de datos. En Pandas, las dos formas más comunes de seleccionar datos son iloc y loc.
iloc[] - Indexación por Enteros
iloc se utiliza para la indexación basada en enteros, permitiendo seleccionar filas y columnas por su posición.
Ejemplos de uso de iloc:
-
Seleccionar una fila específica:
import pandas as pd
file_path = "online_retail.csv"
retail_data = pd.read_csv(file_path)
primera_fila = retail_data.iloc[0]
print("Primera fila:\n", primera_fila)
-
Seleccionar múltiples filas:
primeras_cinco_filas = retail_data.iloc[:5]
print("Primeras cinco filas:\n", primeras_cinco_filas)
-
Seleccionar una fila y una columna específica:
valor = retail_data.iloc[0, 2]
print("Valor en la primera fila y tercera columna:", valor)
-
Seleccionar múltiples filas y columnas:
subset = retail_data.iloc[:5, :3]
print("Subset de las primeras cinco filas y tres columnas:\n", subset)
loc[] - Indexación por Etiquetas
loc se utiliza para la indexación basada en etiquetas, permitiendo seleccionar filas y columnas por sus nombres.
Ejemplos de uso de loc:
-
Seleccionar una fila específica por su índice:
fila_indice_3 = retail_data.loc[3]
print("Fila con índice 3:\n", fila_indice_3)
-
Seleccionar múltiples filas por sus índices:
filas_indices_0_a_4 = retail_data.loc[0:4]
print("Filas con índices de 0 a 4:\n", filas_indices_0_a_4)
Nota: Con loc, el índice final es inclusivo. retail_data.loc[0:4] selecciona 5 filas, incluyendo la fila con índice 4.
-
Seleccionar una columna específica por su nombre:
columna_quantity = retail_data.loc[:, 'Quantity']
print("Columna 'Quantity':\n", columna_quantity.head())
-
Seleccionar múltiples columnas por sus nombres:
columnas_quantity_unitprice = retail_data.loc[:, ['Quantity', 'UnitPrice']]
print("Columnas 'Quantity' y 'UnitPrice':\n", columnas_quantity_unitprice.head())
-
Seleccionar columnas por rango de nombres:
subset_columns = retail_data.loc[:, 'Column1':'Column5']
print("Columnas desde 'Column1' hasta 'Column5':\n", subset_columns.head())
Diferencias Clave entre iloc y loc
- Basado en Enteros vs. Etiquetas:
iloc: selecciona datos por posición usando índices enteros.
loc: selecciona datos por etiquetas usando nombres de índices y columnas.
- Inclusión del Último Índice:
iloc: excluye el último índice en un rango.
loc: incluye el último índice en un rango.
Ejercicio Práctico
- Seleccionar Subconjuntos de Datos:
- Utiliza
iloc para seleccionar las primeras 10 filas y las primeras 2 columnas del dataset de retail.
- Utiliza
loc para seleccionar todas las filas y las columnas ‘Quantity’ y ‘UnitPrice’.
- Acceso Específico:
- Utiliza
iloc para seleccionar el valor en la quinta fila y la segunda columna.
- Utiliza
loc para seleccionar todas las filas donde el país es ‘United Kingdom’ y mostrar las columnas ‘Quantity’ y ‘UnitPrice’.
Código de Ejemplo
import pandas as pd
file_path = "online_retail.csv"
retail_data = pd.read_csv(file_path)
subset_iloc = retail_data.iloc[:10, :2]
print("Primeras 10 filas y 2 columnas utilizando iloc:\n", subset_iloc)
subset_loc = retail_data.loc[:, ['Quantity', 'UnitPrice']]
print("Columnas 'Quantity' y 'UnitPrice' utilizando loc:\n", subset_loc.head())
valor_iloc = retail_data.iloc[4, 1]
print("Valor en la quinta fila y segunda columna utilizando iloc:", valor_iloc)
subset_uk = retail_data.loc[retail_data['Country'] == 'United Kingdom', ['Quantity', 'UnitPrice']]
print("Filas de 'United Kingdom' con columnas 'Quantity' y 'UnitPrice' utilizando loc:\n", subset_uk.head())