Curso
Muitas vezes, um DataFrame conterá colunas que não são úteis para a sua análise. Essas colunas devem ser retiradas do DataFrame para facilitar que você se concentre nas colunas restantes.
As colunas podem ser removidas especificando-se os nomes dos rótulos e os eixos correspondentes, ou especificando-se diretamente os nomes dos índices ou das colunas. Ao usar um índice múltiplo, os rótulos em níveis diferentes podem ser removidos especificando-se o nível.
.drop()
Método
Vamos comparar a contagem de valores ausentes com o formato do dataframe. Você perceberá que a coluna county_name
contém tantos valores ausentes quanto linhas, o que significa que ela contém apenas valores ausentes.
ri.isnull().sum()
state 0
stop_date 0
stop_time 0
county_name 91741
driver_gender 5205
driver_race 5202
...
ri.shape
91741, 15
Como ela não contém informações úteis, essa coluna pode ser eliminada usando o método .drop()
.
Além de especificar o nome da coluna, você precisa especificar que está eliminando do eixo das colunas e que deseja que a operação ocorra no local, o que evita um comando de atribuição, como mostrado abaixo:
ri.drop('county_name',
axis='columns', inplace=True)
.dropna()
Método
O método .dropna()
é uma ótima maneira de eliminar linhas com base na presença de valores ausentes nessa linha.
Por exemplo, usando o conjunto de dados acima, vamos supor que as colunas stop_date e stop_time sejam essenciais para nossa análise e, portanto, uma linha é inútil para nós sem esses dados.
ri.head()
state stop_date stop_time driver_gender driver_race
0 RI 2005-01-04 12:55 M White
1 RI 2005-01-23 23:15 M White
2 RI 2005-02-17 04:15 M White
3 RI 2005-02-20 17:15 M White
4 RI 2005-02-24 01:20 F White
Podemos dizer ao pandas para eliminar todas as linhas que tenham um valor ausente nas colunas stop_date
ou stop_time
. Como especificamos um subconjunto, o método .dropna()
leva em conta apenas essas duas colunas ao decidir quais linhas você deve descartar.
ri.dropna(subset=['stop_date', 'stop_time'], inplace=True)
Exemplo interativo de eliminação de colunas
Neste exemplo, você eliminará a coluna county_name
porque ela contém apenas valores ausentes e eliminará a coluna state
porque todas as paradas de trânsito ocorreram em um estado (Rhode Island). Assim, essas colunas podem ser eliminadas porque não contêm informações úteis. O número de valores ausentes em cada coluna foi impresso no console para você.
- Examine o site
.shape
do DataFrame para descobrir o número de linhas e colunas. - Elimine as colunas
county_name
estate
passando os nomes das colunas para o método.drop()
como uma lista de cadeias de caracteres. - Examine o site
.shape
novamente para verificar se agora há duas colunas a menos.
# Examine the shape of the DataFrame
print(ri.shape)
# Drop the 'county_name' and 'state' columns
ri.drop(['county_name', 'state'], axis='columns', inplace=True)
# Examine the shape of the DataFrame (again)
print(ri.shape)
Quando você executa o código acima, ele produz o seguinte resultado:
(91741, 15)
(91741, 13)
Para saber mais sobre a eliminação de colunas no pandas, assista a este vídeo do nosso curso, Introdução à visualização de dados com ggplot2.
Este conteúdo foi extraído do curso Introdução à visualização de dados com ggplot2 do DataCamp, ministrado por Kevin Markham.
Confira nosso tutorial Pandas Add Column.