Saltar al contenido principal
InicioAcerca de PythonAprender Python

Tutorial seleccionar columnas con Python

Utiliza Python Pandas y selecciona columnas de los DataFrames. ¡Sigue nuestro tutorial con ejemplos de código y aprende hoy mismo distintas formas de seleccionar tus datos!
Actualizado feb 2024  · 7 min leer

Si tienes un DataFrame y quieres acceder o seleccionar unas pocas filas/columnas concretas de ese DataFrame, puedes utilizar corchetes u otros métodos avanzados como loc y iloc.

Seleccionar columnas con corchetes

Vamos a suponer quieres seleccionar la columna country del DataFrame brics. Para ello, escribirás brics y a continuación la etiqueta de la columna dentro de los corchetes.

Seleccionar una columna

          country     capital        area    population
BR         Brazil    Brasilia       8.516        200.40
RU         Russia      Moscow      17.100        143.50
IN         India    New Dehli       3.286       1252.00
CH         China      Beijing       9.597       1357.00
SA  South Africa     Pretoria       1.221         52.98
brics["country"]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa
Name: country, dtype: object

Comprobar el tipo de objeto

Comprobemos el tipo del objeto que se devuelve con la función tipo.

type(brics["country"])
pandas.core.series.Series

Como podemos ver en el resultado anterior, ¡se trata de una serie pandas! Las series pueden considerarse como una matriz unidimensional que puede etiquetarse igual que un DataFrame.

Si quieres seleccionar datos y guardarlos en un DataFrame, tendrás que utilizar corchetes dobles:

brics[["country"]]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa

Si comprobamos el tipo de esta salida, ¡es un DataFrame! Pero con una sola columna.

type(brics[["country"]])
pandas.core.frame.DataFrame

Seleccionar varias columnas

Puedes ampliar esta llamada para seleccionar dos columnas. Intentemos seleccionar country y capital.

brics[["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

Si te fijas bien, en realidad estás poniendo una lista con etiquetas de columnas dentro de otro conjunto de corchetes y acabas con un sub DataFrame que sólo contiene las columnas country y capital.

Seleccionar filas utilizando corchetes

Los corchetes pueden hacer algo más que seleccionar columnas. También puedes utilizarlos para obtener filas, u observaciones, de un DataFrame.

Ejemplo:

Sólo puedes seleccionar filas utilizando corchetes si especificas un corte, como 0:4. Además, aquí estás utilizando los índices enteros de las filas, ¡no las etiquetas de las filas!

Para obtener la segunda, tercera y cuarta filas de brics DataFrame, utilizamos el corte 1 a 4. Recuerda que el final del corte es exclusivo, y que el índice empieza en cero.

brics[1:4]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Dehli    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Estos corchetes funcionan, pero sólo ofrecen una funcionalidad limitada. Lo ideal sería algo parecido a las matrices 2D Numpy, en las que también se utilizan corchetes. El índice, o corte, antes de la coma se refiere a las filas, y el corte después de la coma se refiere a las columnas.

Ejemplo de matriz 2D Numpy:

my_array[rows, columns]

Si quieres hacer algo parecido con pandas, tienes que mirar de utilizar las funciones loc y iloc.

  • loc: basado en etiquetas
  • iloc: basado en la posición de los integer

loc Función

loc es una técnica para seleccionar partes de tus datos basándote en etiquetas. Veamos el DataFrame de brics y obtengamos las filas de Rusia.

Para ello, pondrás la etiqueta de interés entre corchetes después de loc.

Seleccionar filas

brics.loc["RU"]
country     Russia
capital     Moscow
area          17.1
population   143.5
Name: RU, dtype: object

Obtenemos una serie pandas que contiene toda la información de las filas; aunque, de forma inconveniente, se muestra en diferentes líneas. Para obtener un DataFrame, tenemos que poner la cadena RU en otro par de corchetes. También podemos seleccionar varias filas a la vez. Supón que quieres incluir también a India y China. Sólo tienes que añadir esas etiquetas de fila a la lista.

brics.loc[["RU", "IN", "CH"]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Dehli    3.286       1252.00
CH         China      Beijing    9.597       1357.00

La diferencia entre utilizar un loc y los corchetes básicos es que puedes ampliar la selección con una coma y una especificación de las columnas de interés.

Seleccionar filas y columnas

Ampliemos la llamada anterior para incluir sólo las columnas country y capital. Añadimos una coma y enumeramos las etiquetas de las columnas que queremos conservar. Se devuelve la intersección.

brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
          country     capital
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing

También puedes utilizar loc para seleccionar todas las filas pero sólo un número determinado de columnas. Simplemente sustituye la primera lista que especifica las etiquetas de las filas por dos puntos. Un trozo que va de principio a fin. Esta vez, recuperamos todas las filas pero sólo dos columnas.

Seleccionar todas las filas y columnas específicas

brics.loc[:, ["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

iloc Función

La función iloc te permite crear subconjuntos de pandas DataFrames en función de su posición o índice.

Seleccionar filas

Utilicemos los mismos datos y ejemplos similares que en loc. Empecemos por la fila de Rusia.

brics.iloc[[1]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50

Para obtener las filas de Rusia, India y China. Ahora puedes utilizar una lista de índices 1, 2, 3.

brics.iloc[[1, 2, 3]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Dehli    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Seleccionar filas y columnas

De forma similar a loc, también podemos seleccionar tanto filas como columnas utilizando iloc. Aquí seleccionaremos las filas de Rusia, India y China y las columnas country y capital.

brics.iloc[[1, 2, 3], [0, 1]]
          country     capital
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing

Seleccionar todas las filas y columnas específicas

Por último, si quisieras seleccionar todas las filas pero quedarte sólo con las columnas country y capital, puedes hacerlo:

brics.loc[:, [0, 1]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

loc y iloc son bastante similares. La única diferencia es cómo te refieres a columnas y filas.

Ejemplo interactivo sobre la selección de un subconjunto de datos

En el siguiente ejemplo, los datos de los coches se importan desde un archivo CSV como un DataFrame de Pandas. Para seleccionar sólo los cars_per_cap column de los coches, puedes utilizar:

cars['cars_per_cap']
cars[['cars_per_cap']]

La versión de corchetes simples da una Serie Pandas; la versión de corchetes dobles da un DataFrame Pandas.

  • Utilizarás corchetes simples para imprimir la columna country de cars como una Serie Pandas.
  • A continuación, utiliza corchetes dobles para imprimir la columna country de cars como un Pandas DataFrame.
  • Por último, utiliza los corchetes dobles para imprimir un DataFrame con las columnas country y drives_right de cars, en este orden.
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)

# Print out country column as Pandas Series
print(cars['country'])

# Print out country column as Pandas DataFrame
print(cars[['country']])

# Print out DataFrame with country and drives_right columns
print(cars[['country', 'drives_right']])

Cuando ejecutamos el código anterior, se obtiene el siguiente resultado:

US     United States
AUS        Australia
JPN            Japan
IN             India
RU            Russia
MOR          Morocco
EG             Egypt
Name: country, dtype: object
           country
US   United States
AUS      Australia
JPN          Japan
IN           India
RU          Russia
MOR        Morocco
EG           Egypt
           country  drives_right
US   United States          True
AUS      Australia         False
JPN          Japan         False
IN           India         False
RU          Russia          True
MOR        Morocco          True
EG           Egypt          True

Pruébalo tú mismo.

Para saber más sobre los pandas, consulta este vídeo de nuestro curso Python Intermedio.

Este contenido ha sido extraído del curso de Python Intermedio de DataCamp, impartido por Hugo Bowne-Anderson.

Temas

Cursos de Python

Certificación disponible

Course

Intermediate Python

4 hr
1.1M
Level up your data science skills by creating visualizations using Matplotlib and manipulating DataFrames with pandas.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

Cómo crear un currículum de analista de datos

En este artículo, hablaremos de cómo crear un currículum de analista de datos que consiga que te contraten.
Matt Crabtree's photo

Matt Crabtree

7 min

Cómo aprender Python desde cero en 2024: Guía del experto

Descubre cómo aprender Python, sus aplicaciones y la demanda de conocimientos de Python. Comienza hoy tu andadura en Python ​con nuestra guía completa.
Matt Crabtree's photo

Matt Crabtree

19 min

La importancia de los datos: 5 razones principales

¿Por qué son importantes los datos? Conoce la importancia de los datos en el mundo actual y descubre algunos cursos que te ayudarán a mejorar tus propias habilidades con los datos.
Kurtis Pykes 's photo

Kurtis Pykes

6 min

Python 2 vs 3

Python 2 frente a 3: Todo lo que necesitas saber

En este artículo, trataremos las principales diferencias entre Python 2 y 3, cuál es el mejor y por cuál deberías decantarte para comenzar tu andadura en la ciencia de datos
Javier Canales Luna 's photo

Javier Canales Luna

6 min

if...elif...else en el tutorial de Python

Aprende a crear sentencias if...elif...else en Python.
DataCamp Team's photo

DataCamp Team

4 min

Cómo escribir un Bash Script: Un sencillo tutorial de Bash Scripting

Descubre los fundamentos de las secuencias de comandos bash y aprende a escribir una secuencia de comandos bash.
Kurtis Pykes 's photo

Kurtis Pykes

5 min

See MoreSee More