0Pricing
Python Academy · Lección

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 inclusive

Filtrado 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 25

Varias 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 LA

between() 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 85

loc 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:99

at 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 second

nlargest 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 500

Comprobació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

  1. Fundamentos de Series y DataFrame
  2. Indexación, filtrado y máscaras booleanas
  3. GroupBy, agregación y tablas dinámicas
  4. Fusión, combinación y limpieza de datos
← Volver a Python Academy