HOWTO · Pandas

Tomar cortes de columna del DataFrame en Pandas

Este tutorial muestra cómo tomar cortes de columna en los pandas usando los métodos .loc(),.iloc() y .reindex()

En esta página

El corte de columnas en Pandas nos permite cortar el DataFrame en subconjuntos, lo que significa que crea un nuevo DataFrame de Pandas a partir del original con sólo las columnas necesarias. Trabajaremos con el siguiente dataframe como ejemplo de rebanado de columnas.

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.797321  0.468894  0.335781  0.956516
1  0.546303  0.567301  0.955228  0.557812
2  0.385315  0.706735  0.058784  0.578468
3  0.751037  0.248284  0.172229  0.493763

Use loc() para cortar las columnas en Pandas DataFrame

La biblioteca de Pandas nos proporciona más de un método para llevar a cabo el corte de la columna. El primero es usar la función loc().

La función loc() de Pandas nos permite acceder a los elementos de un dataframe usando nombres de columna o etiquetas de índice. La sintaxis para el rebanado de columnas usando loc():

dataframe.loc[:, [columns]]

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
df1 = df.loc[:, "a":"c"]  # Returns a new dataframe with columns a,b and c
print(df1)

Resultado:

          a         b         c
0  0.344952  0.611792  0.213331
1  0.907322  0.992097  0.080447
2  0.471611  0.625846  0.348778
3  0.656921  0.999646  0.976743

Use iloc() para rebanar columnas en Pandas DataFrame

También podemos usar la función iloc() para acceder a los elementos de Dataframe usando el índice entero de filas y columnas. La sintaxis para el rebanado de columnas usando iloc():

dataframe.iloc[:, [column - index]]

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
df1 = df.iloc[:, 0:2]  # Returns a new dataframe with first two columns
print(df1)

Resultado:

          a         b
0  0.034587  0.070249
1  0.648231  0.721517
2  0.485168  0.548045
3  0.377612  0.310408

Use redindex() para rebanar columnas en Pandas DataFrame

La función reindex() también puede utilizarse para alterar los índices Dataframe y puede usarse para cortar las columnas. La función reindex() puede tomar muchos argumentos, pero para el rebanado de columnas, sólo necesitaremos proporcionar a la función los nombres de las columnas.

La sintaxis para el rebanado de columnas usando reindex():

dataframe.reindex(columns=[column_names])

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
# Returns a new dataframe with c and b columns
df1 = df.reindex(columns=["c", "b"])
print(df1)

Resultado:

          c         b
0  0.429790  0.962838
1  0.605381  0.463617
2  0.922489  0.733338
3  0.741352  0.118478