Seleccionar múltiples columnas en Pandas Dataframe

  1. Usando la sintaxis __getitem__ ([]) para seleccionar múltiples columnas
  2. Usando los métodos iloc() y loc() para seleccionar múltiples columnas en Pandas

Podemos enfrentarnos a problemas al extraer datos de múltiples columnas de un DataFrame de Pandas, principalmente porque tratan el DataFrame como un array bidimensional. Para seleccionar múltiples columnas de un DataFrame, podemos utilizar el método básico de indexación pasando la lista de nombres de columna a la sintaxis getitem ([]), o los métodos iloc() y loc() proporcionados por la biblioteca de Pandas. Para este tutorial, seleccionaremos múltiples columnas del siguiente DataFrame.

Ejemplo de DataFrame:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])

print(df)

Resultado:

          a         b         c         d
0  0.255086  0.282203  0.342223  0.263599
1  0.744271  0.591687  0.861554  0.871859
2  0.420066  0.713664  0.770193  0.207427
3  0.014447  0.352515  0.535801  0.119759

Usando la sintaxis __getitem__ ([]) para seleccionar múltiples columnas

Al almacenar los nombres de las columnas a extraer en una lista y luego pasarla al [], podemos seleccionar múltiples columnas del DataFrame. El siguiente código explicará cómo podemos seleccionar las columnas a y c del DataFrame previamente mostrado.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])

print(df[['a','c']])

Resultado:

          a         c
0  0.255086  0.342223
1  0.744271  0.861554
2  0.420066  0.770193
3  0.014447  0.535801

Usando los métodos iloc() y loc() para seleccionar múltiples columnas en Pandas

También podemos usar los métodos iloc() y loc() para seleccionar múltiples columnas.

Cuando queramos usar los índices de las columnas para extraerlas, podemos usar iloc() como se muestra en el siguiente ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])
print(df.iloc[:,[0,2]])

Resultado:

          a         c
0  0.255086  0.342223
1  0.744271  0.861554
2  0.420066  0.770193
3  0.014447  0.535801

De manera similar, podemos usar loc() cuando queramos seleccionar columnas usando sus nombres como se muestra a continuación:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])

print(df.loc[:,['a','c']])

Resultado:

          a         c
0  0.255086  0.342223
1  0.744271  0.861554
2  0.420066  0.770193
3  0.014447  0.535801

Artículo relacionado - Pandas DataFrame

  • Cómo convertir el diccionario Python en Pandas DataFrame
  • Convertir Pandas en CSV sin índice