En Pandas podemos seleccionar filas, columnas o subconjuntos de diversas maneras dentro de un DataFrame. Las herramientas principales son loc
(por etiquetas), iloc
(por posición numérica), condiciones lógicas y máscaras booleanas. Dominar estas técnicas permite analizar datasets con mayor precisión en Python.
.loc
)Con loc
accedemos a filas y columnas usando nombres de etiquetas (no números).
import pandas as pd
datos = {
"Nombre": ["Ana", "Luis", "Carla", "Pedro", "María"],
"Edad": [23, 35, 29, 42, 31],
"Ciudad": ["Córdoba", "Buenos Aires", "Rosario", "Mendoza", "Salta"],
"Salario": [55000, 72000, 61000, 83000, 59000]
}
df = pd.DataFrame(datos)
df = df.set_index("Nombre") # usamos Nombre como índice
print(df)
Salida:
Edad Ciudad Salario
Nombre
Ana 23 Córdoba 55000
Luis 35 Buenos Aires 72000
Carla 29 Rosario 61000
Pedro 42 Mendoza 83000
María 31 Salta 59000
Ejemplos con loc
# Seleccionar una fila por etiqueta
print(df.loc["Carla"])
# Seleccionar varias filas
print(df.loc[["Ana", "Pedro"]])
# Seleccionar filas y columnas específicas
print(df.loc["Luis", "Ciudad"]) # valor único
print(df.loc[["Ana", "María"], ["Edad", "Salario"]])
.iloc
)Con iloc
seleccionamos datos según su posición numérica, al estilo de un array de NumPy.
# Seleccionar la primera fila
print(df.iloc[0])
# Seleccionar la tercera fila y segunda columna
print(df.iloc[2, 1])
# Seleccionar un rango de filas
print(df.iloc[1:4]) # filas 1 a 3
# Seleccionar rango de filas y columnas
print(df.iloc[0:2, 0:2]) # primeras 2 filas y 2 columnas
👉 loc
es más legible cuando conocemos los nombres, mientras que iloc
es práctico para operaciones numéricas o iteraciones controladas.
Podemos aplicar expresiones lógicas para filtrar filas según criterios específicos.
# Filtrar empleados con Edad mayor a 30
print(df[df["Edad"] > 30])
# Filtrar con varias condiciones (AND y OR)
print(df[(df["Edad"] > 30) & (df["Salario"] > 60000)]) # AND
print(df[(df["Ciudad"] == "Rosario") | (df["Ciudad"] == "Salta")]) # OR
👉 Notá el uso obligatorio de paréntesis al combinar condiciones con &
(AND) y |
(OR).
Una máscara booleana es un arreglo de True
/False
que Pandas usa para filtrar filas de forma reutilizable.
# Crear una máscara booleana
mask = df["Edad"] > 30
print(mask)
# Aplicar la máscara al DataFrame
print(df[mask])
Salida de la máscara:
Nombre
Ana False
Luis True
Carla False
Pedro True
María True
Name: Edad, dtype: bool
Salida del DataFrame filtrado:
Edad Ciudad Salario
Nombre
Luis 35 Buenos Aires 72000
Pedro 42 Mendoza 83000
María 31 Salta 59000
👉 Las máscaras permiten crear filtros complejos y reutilizarlos en distintas operaciones.
loc
: selección por nombres de filas y columnas.iloc
: selección por posiciones numéricas.>
, <
, ==
, &
, |
).True
/False
aplicados como filtros reutilizables.Con estas técnicas controlás qué datos analizar antes de aplicar transformaciones o modelos.