Indexación, filtrado y máscaras booleanas
Seleccione filas y columnas con loc, iloc y condiciones booleanas.
Indexación, filtrado y máscaras booleanas es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
loc frente a iloc
loc selecciona mediante etiquetas; iloc selecciona mediante posiciones enteras. No los confunda.
import pandas as pd
df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]}, index=["x","y","z"])
print(df.loc["y"]) # row with label y
print(df.iloc[1]) # row at position 1 (same row)
print(df.loc["x":"y"]) # rows x to y inclusiveFiltrado con máscaras booleanas
Cree una Series booleana y úsela para seleccionar filas. Es el equivalente de la indexación booleana de NumPy en pandas.
import pandas as pd
df = pd.DataFrame({"name":["Alice","Bob","Carol"],"age":[30,17,25]})
adults = df[df["age"] >= 18]
print(adults)
# Alice 30
# Carol 25Varias condiciones
Combine condiciones booleanas con & (y) y | (o). Encierre cada condición entre paréntesis.
import pandas as pd
df = pd.DataFrame({"city":["NY","LA","NY","LA"],"score":[80,90,70,85]})
result = df[(df["city"]=="NY") & (df["score"]>75)]
print(result)Método query()
df.query("expression") acepta una expresión de texto, que suele ser más legible que las máscaras booleanas.
import pandas as pd
df = pd.DataFrame({"age":[30,17,25],"score":[90,80,70]})
result = df.query("age >= 18 and score > 75")
print(result)Filtrado con isin()
isin(list) filtra las filas cuyo valor de columna se encuentra en una lista determinada.
import pandas as pd
df = pd.DataFrame({"city":["NY","LA","Chicago","NY"],"val":[1,2,3,4]})
print(df[df["city"].isin(["NY","LA"])])
# rows with NY or LAbetween() para filtrar por rangos
series.between(left, right) devuelve True para los valores incluidos en [left, right]; el intervalo es inclusivo de forma predeterminada.
import pandas as pd
df = pd.DataFrame({"score":[55,70,85,95,40]})
print(df[df["score"].between(60, 90)])
# 70 and 85loc para asignaciones
Use siempre loc/iloc para realizar asignaciones directamente y evitar la advertencia SettingWithCopyWarning.
import pandas as pd
df = pd.DataFrame({"val":[1,2,3,4]})
df.loc[df["val"] > 2, "val"] = 99
print(df)
# 0:1 1:2 2:99 3:99at e iat para valores individuales
at[label, col] e iat[i, j] proporcionan un acceso escalar rápido; son más rápidos que loc/iloc para valores individuales.
import pandas as pd
df = pd.DataFrame({"a":[10,20],"b":[30,40]})
print(df.at[0,"a"]) # 10 (by label)
print(df.iat[1,1]) # 40 (by position)Selección por tipo de datos
select_dtypes(include/exclude) selecciona columnas según su tipo de datos.
import pandas as pd
df = pd.DataFrame({"x":[1,2],"name":["a","b"],"score":[1.5,2.5]})
nums = df.select_dtypes(include=["number"])
print(nums.columns.tolist()) # ['x', 'score']Eliminación de duplicados
drop_duplicates() elimina las filas duplicadas. Especifique subset para comparar solo determinadas columnas.
import pandas as pd
df = pd.DataFrame({"name":["Alice","Bob","Alice"],"age":[30,25,30]})
print(df.drop_duplicates())
# keeps first Alice, removes secondnlargest y nsmallest
Seleccione de forma eficiente las N filas superiores o inferiores según el valor de una columna.
import pandas as pd
df = pd.DataFrame({"product":["A","B","C","D"],"sales":[500,300,800,200]})
print(df.nlargest(2,"sales"))
# C 800
# A 500Comprobación rápida
¿Cuál es la diferencia entre loc e iloc?
Resumen
Use loc[label] para seleccionar mediante etiquetas e iloc[i] para seleccionar mediante posiciones. Filtre las filas con máscaras booleanas combinadas mediante &/|. Use query() para filtros legibles, isin() para comprobar pertenencia y asigne siempre mediante loc para evitar SettingWithCopyWarning.
Preguntas frecuentes
¿La lección «Indexación, filtrado y máscaras booleanas» es gratis?
Sí — el texto completo de «Indexación, filtrado y máscaras booleanas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Indexación, filtrado y máscaras booleanas»?
Seleccione filas y columnas con loc, iloc y condiciones booleanas. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Indexación, filtrado y máscaras booleanas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de Series y DataFrame
- Indexación, filtrado y máscaras booleanas
- GroupBy, agregación y tablas dinámicas
- Fusión, combinación y limpieza de datos