Remover Colunas por índice em Pandas DataFrame

Manav Narula 6 fevereiro 2021
Remover Colunas por índice em Pandas DataFrame

Os DataFrames podem ser muito grandes e podem conter centenas de filas e colunas. É necessário ser proficiente em operações básicas de manutenção de um DataFrame, como deixar cair várias colunas. Podemos utilizar o método dataframe.drop() para largar colunas ou linhas da DataFrame, dependendo do axis especificado, 0 para linhas e 1 para colunas. Identifica os elementos a remover com base em algumas etiquetas. Por exemplo, largaremos a coluna 'a' a partir do seguinte DataFrame.

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

print(df)

df.drop(["a"], axis=1, inplace=True)

print(df)

Resultado:

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6
   b   c   d
0  6   7   8
1  9  12  14
2  8  10   6

Repare na utilização do parâmetro inplace na função drop. Com o parâmetro inplace definido como True, as colunas são removidas do DataFrame original; caso contrário, é devolvida uma cópia do original.

No nosso exemplo, removemos a coluna 'a', mas precisamos de passar o seu nome de etiqueta para a função dataframe.drop(). Quando lidamos com grandes conjuntos de dados, devemos tratar dessas tarefas para muitas colunas ao mesmo tempo e utilizando índices de coluna em vez dos seus nomes.

Podemos conseguir isto utilizando o método dataframe.columns(), que devolve todas as colunas de um DataFrame e passa os rótulos de coluna necessários utilizando os seus índices para a função dataframe.drop(). O seguinte trecho de código explica como podemos fazer isto.

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df.drop(df.columns[[1, 2]], axis=1, inplace=True)

print(df)

Resultado:

    a   d
0  10   8
1   1  14
2   5   6

Desce colunas cujo índice é 1 ou 2.

Também podemos evitar utilizar o parâmetro axis, bastando mencionar o parâmetro columns na função dataframe.drop(), o que indica automaticamente que as colunas devem ser eliminadas. Exemplo:

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df.drop(columns=df.columns[[1, 2]], inplace=True)

print(df)

Resultado:

    a   d
0  10   8
1   1  14
2   5   6
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artigo relacionado - Pandas DataFrame