HOWTO · Pandas
Remover Colunas por índice em Pandas DataFrame
Este tutorial demonstra como remover colunas de um quadro de dados em pandas usando os seus índices
Nesta página
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