• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Seleccionar filas y columnas en Pandas con iloc y loc

junio 21, 2019 Por Daniel Rodríguez 4 comentarios
Tiempo de lectura: 5 minutos

En los DataFrames de Pandas existen diferentes formas de seleccionar los registros de las filas y columnas. Siendo dos de las más importantes iloc y loc. La primera permite seleccionar los elementos en base a la posición, mientras que la segunda permite seleccionar mediante etiquetas o declaraciones condicionales. Esta entrada en un tutorial en el que se explicaran los fundamentos para seleccionar filas y columnas en Pandas con iloc y loc.

Tabla de contenidos

  • 1 Los objetos DataFrame de Pandas
  • 2 Seleccionar filas y columnas en Pandas mediante posición con iloc
    • 2.1 Selección múltiple de filas o columnas mediante posición con iloc
    • 2.2 Consideraciones al utilizar iloc
  • 3 Seleccionar filas y columnas en Pandas en base a etiquetas con loc
    • 3.1 Seleccionar filas o columnas en base a su etiqueta con loc
    • 3.2 Seleccionar filas o columnas en base a una condición con loc
  • 4 Conclusiones

Los objetos DataFrame de Pandas

Los objetos DataFrame de Pandas son una estructura de datos de alto rendimiento con la que es posible manejar fácilmente datos tabulares para el análisis de datos. En estos objetos cada una de las filas representa un registro. Mientras que en cada una de las columnas representan variables, a las que generalmente se les asigna un nombre. Siendo una tarea habitual seleccionar de forma rápida tanto filas como columnas.

En este tutorial se va a utilizar el conjunto de datos de tips que se pueden encontrar en el paquete seaborn. La importación de los datos se puede realizar mediante el siguiente código.

from seaborn import load_dataset

df = load_dataset("tips")
df.head()
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

Publicidad


Seleccionar filas y columnas en Pandas mediante posición con iloc

El método iloc se utiliza en los DataFrames para seleccionar los elementos en base a su ubicación. Su sintaxis es data.iloc[<filas>, <columnas>], donde <filas> y <columnas> son la posición de las filas y columnas que se desean seleccionar en el orden que aparecen en el objeto. Una notación familiar para los usuarios de Matlab. En un DataFrame cada una de las filas tiene un número que va desde 0 hasta el total de filas menos uno. Siendo iloc el método que permite seleccionar los datos en base a estos números. Lo mismo que aplica a las columnas.

Ordenadores para Machine Learning e Inteligencia Artificial en 2026: Guía completa para elegir el equipo adecuado según tu perfil y presupuesto
En Analytics Lane
Ordenadores para Machine Learning e Inteligencia Artificial en 2026: Guía completa para elegir el equipo adecuado según tu perfil y presupuesto

En iloc hay dos argumentos filas y columnas. En caso de que se omita el segundo, se seleccionarán todas las columnas de la fila. Así para seleccionar diferentes filas se puede utilizar.

df.iloc[0] # Primera fila
df.iloc[1] # Segunda fila
df.iloc[-1] # Última fila

Nótese como el uso de valores negativos permite acceder a la última posición sin necesidad de conocer el tamaño del conjunto de datos. Por otro lado, para seleccionar una columna se tiene que utilizar : como primer parámetro, lo que indica todos, y el índice de esta como segundo. Así se puede hacer

df.iloc[:, 0] # Primera columna
df.iloc[:, 1] # Segunda columna
df.iloc[:, -1] # Última columna

Selección múltiple de filas o columnas mediante posición con iloc

En muchas ocasiones se puede desear seleccionar un conjunto de filas o columnas en lugar de una sola. Para ello se puede utilizar un vector con el listado en lugar de un escalar. Imprimiendo las filas o columnas en el orden indicado, por lo que se puede utilizar esto para reordenar los elementos de un DataFrame.

df.iloc[0:5] # Primeras cinco filas
df.iloc[:, 0:5] # Primeras cinco columnas
df.iloc[[0,2,1]]  # Primera, tercera y segunda filas
df.iloc[:, [0,2,1]]  # Primera, tercera y segunda columnas

Publicidad


Consideraciones al utilizar iloc

Es importante tener en cuenta que iloc devuelve una Serie Pandas cuando se selecciona una fila y un DataFrame cuando se selecciona varias. En el caso que sea necesario seleccionar un DataFrame con una única columna es necesario pasar una lista con la columna, no un escalar.

Por otro lado, al seleccionar varias filas o columnas con inicio:fin es necesario recordar que los valores ira desde el principio hasta el final menos uno. Por ejemplo, iloc[1:3] solamente seleccionara la segunda y tercera fila, 1 y 3. Teniendo en cuenta además que los índices en Python comienzan en 0, no en 1 como es el caso de R o Matlab.

Seleccionar filas y columnas en Pandas en base a etiquetas con loc

El método loc se puede usar de dos formas diferentes: seleccionar filas o columnas en base a una etiqueta o seleccionar filas o columnas en base a una condición.

Publicidad


Seleccionar filas o columnas en base a su etiqueta con loc

En el ejemplo importado las filas tienen como etiquete el número de fila. Por lo que el uso de loc parece similar al de iloc para las filas, aunque tiene algunas diferencias. Por ejemplo, si se han seleccionado las filas del 1 al 4 y se carga el resultado en un nuevo DataFrame a la hora de acceder a la fila 1 con loc se tendrá la primera del nuevo objeto mientras que iloc devolverá la segunda. Esto es así porque los índices se conservan, pero no las posiciones.

df_sub = df.loc[1:5]
df_sub.loc[1]
total_bill     10.34
tip             1.66
sex             Male
smoker            No
day              Sun
time          Dinner
size               3
Name: 1, dtype: object
df_sub.iloc[1]
total_bill     21.01
tip              3.5
sex             Male
smoker            No
day              Sun
time          Dinner
size               3
Name: 2, dtype: object

En el caso de las columnas se nota más la diferencia ya que se puede acceder a ellas por nombre, tanto sea una como varias

df.loc[:, 'tip'] # Columna tip
df.loc[:, ['tip', 'sex', 'day']] # Columnas tip, sex y day

Seleccionar filas o columnas en base a una condición con loc

Quizás esta sea una de las opciones más interesantes de las vistas, ya que permite seleccionar los datos en un DataFrame en base condiciones lógicas. Las cuales se pueden obtener a partir de los valores. Por ejemplo, se puede seleccionar fácilmente los registros correspondientes reservas realizadas por hombres:

is_male = df.loc[:, 'sex'] == 'Male'
df_male = df.loc[is_male]
df_male.head()
   total_bill   tip   sex smoker  day    time  size
1       10.34  1.66  Male     No  Sun  Dinner     3
2       21.01  3.50  Male     No  Sun  Dinner     3
3       23.68  3.31  Male     No  Sun  Dinner     2
5       25.29  4.71  Male     No  Sun  Dinner     4
6        8.77  2.00  Male     No  Sun  Dinner     2

En este ejemplo se puede ver que primero se ha seleccionado la columna sex y comprobado cuando esta tiene el valor Male. Lo que produce un objeto Serie únicamente con valores verdaderos o falsos. Esta serie es la que posteriormente se utiliza para seleccionar los registros que se cargar en el nuevo DataFrame. Los dos pasos aquí vistos se pueden escribir en una única línea.

df.loc[df.loc[:, 'sex'] == 'Male']

Publicidad


Conclusiones

En esta entrada se han visto los diferentes métodos disponibles para seleccionar filas y columnas en Pandas. En primer lugar, el método iloc mediante el cual se pueden seleccionar los elementos en base a su ubicación. En segundo lugar, el método loc con el que seleccionar filas o columnas en base a una etiqueta o seleccionar filas o columnas en base a una condición. Ambos métodos permiten seleccionar más de una fila o columna a la vez, lo que los hace altamente productivos. Además, poder utilizar condiciones lógicas en loc permite filtrar los datos.

Imágenes: Pixabay (PublicDomainPictures)

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 4.9 / 5. Votos emitidos: 24

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Ordenadores para Machine Learning e Inteligencia Artificial en 2026: Guía completa para elegir el equipo adecuado según tu perfil y presupuesto
  • ¿Qué significa realmente un porcentaje? Por qué no es lo mismo subir un 20% que bajar un 20%
  • null y undefined en JavaScript y TypeScript: ¿son realmente lo mismo?
  • Riesgo relativo vs riesgo absoluto: la trampa de los titulares alarmistas
  • Guía práctica de categorías para changelogs en inglés y castellano
  • El valor esperado: la mejor herramienta que casi nadie usa
  • Probabilidad y decisiones: cómo evitar caer en trampas estadísticas del día a día
  • Qué es la variabilidad estadística y cómo evitar errores al analizar datos
  • Faker en Python: qué es, para qué sirve y cómo generar datos sintéticos realistas

Publicado en: Python Etiquetado como: Pandas

Interacciones con los lectores

Comentarios

  1. Jhon Gesell Villanueva Portella dice

    marzo 12, 2020 a las 4:58 pm

    Muy buena entrada, gracias por compartir, es justo lo que me encontraba buscando.

    Responder
  2. cesar dice

    marzo 28, 2020 a las 10:36 pm

    gracias!!!

    Responder
  3. Chocox dice

    junio 14, 2020 a las 11:02 pm

    Genial, muchas gracias por compartir su conocimiento. No se si puedo hacerle una consulta referente a este tema que explica de iloc y loc . Sería posible en un arhivo csv buscar un registro en concreto pero uyilizando un ID diferente. Por ejemplo un club donde cada uno tiene un numero de cliente y me interesa saber un dato concreto de ese socio. Se podria hacer con loc o iloc ????

    Saludos

    Responder
    • Daniel Rodríguez dice

      junio 16, 2020 a las 2:14 pm

      No directamente sobre el archivo, pero una vez que importa un CSV se pueden usar todas las funciones de los DataFrames. Para trabajar con archivos CSV tengo publicado otros tutoriales https://www.analyticslane.com/2018/06/15/guardar-y-leer-archivos-csv-con-python/

      Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Faker en Python: qué es, para qué sirve y cómo generar datos sintéticos realistas

febrero 17, 2026 Por Daniel Rodríguez

Qué es la variabilidad estadística y cómo evitar errores al analizar datos

febrero 12, 2026 Por Daniel Rodríguez

Probabilidad y decisiones: cómo evitar caer en trampas estadísticas del día a día

febrero 10, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • La tabla de la web finalmente importada en Excel Importar tablas desde la web en Excel publicado el octubre 21, 2020 | en Herramientas
  • Medir la velocidad de escritura del disco en Linux publicado el enero 25, 2023 | en Herramientas
  • Faker en Python: qué es, para qué sirve y cómo generar datos sintéticos realistas publicado el febrero 17, 2026 | en Python
  • Número óptimo de clústeres con Silhouette e implementación en Python publicado el junio 23, 2023 | en Ciencia de datos
  • Agregar un ID en una tabla en SQL Server existente asignando un valor autonumérico publicado el mayo 22, 2024 | en Herramientas

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto