segunda-feira, 19 de abril de 2021

Python - Excluindo linhas/colunas de um DataFrame usando Pandas.DataFrame.drop()

O Pandas fornece aos analistas de dados uma maneira de excluir e filtrar o DataFrame usando o método drop(). Linhas ou colunas podem ser removidas usando rótulo de índice ou nome da coluna usando este método.

Sintaxe: DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

Parametros:

  • labels: String ou lista de strings referentes ao nome de linhas ou colunas.
  • axis: um valor inteiro ou string, 0 'index' para linhas e 1 'columns' para colunas.
  • index ou columns: Rótulo ou lista única. index ou columns são uma alternativa ao axis e não podem ser usados juntos.
  • level: Usado para especificar o nível caso o DataFrame tenha um índice de vários níveis.
  • inplace: Faz alterações no DataFrame original se True.
  • errors: Ignora o erro se algum valor da lista não existir e descarta o restante dos valores quando errors='ignore'

Tipo de retorno: Dataframe com valores descartados.

Para baixar o CSV usado no código, clique aqui.

Exemplo #1: Descartando linhas por rótulo de índice

Em seu código, uma lista de rótulos de índice é passada e as linhas correspondentes a esses rótulos são descartadas usando o método DataFrame.drop().

# importa o pacote pandas
import pandas as pd

# Cria um DataFrame a partir de um arquivo csv
data = pd.read_csv("nba.csv", index_col="Name" )

# Descarta os valores passados
data.drop(["Avery Bradley", "John Holland", "R.J. Hunter", "R.J. Hunter"], inplace=True)

print(data)

Conforme mostrado na saída abaixo, a nova saída não tem os valores passados. Esses valores foram descartados e as mudanças foram feitas no DataFrame original, uma vez que o parametro inplace era True.

DataFrame antes de descartar valores:

                         Team  Number Position   Age Height  Weight            College     Salary
Name
Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0
Jae Crowder    Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0
John Holland   Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN
R.J. Hunter    Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0
Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0
...                       ...     ...      ...   ...    ...     ...                ...        ...
Shelvin Mack        Utah Jazz     8.0       PG  26.0    6-3   203.0             Butler  2433333.0
Raul Neto           Utah Jazz    25.0       PG  24.0    6-1   179.0                NaN   900000.0
Tibor Pleiss        Utah Jazz    21.0        C  26.0    7-3   256.0                NaN  2900000.0
Jeff Withey         Utah Jazz    24.0        C  26.0    7-0   231.0             Kansas   947276.0
NaN                       NaN     NaN      NaN   NaN    NaN     NaN                NaN        NaN

[458 rows x 8 columns]

DataFrame após descartar valores:

                         Team  Number Position   Age Height  Weight    College      Salary
Name
Jae Crowder    Boston Celtics    99.0       SF  25.0    6-6   235.0  Marquette   6796117.0
Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0        NaN   5000000.0
Amir Johnson   Boston Celtics    90.0       PF  29.0    6-9   240.0        NaN  12000000.0
Jordan Mickey  Boston Celtics    55.0       PF  21.0    6-8   235.0        LSU   1170960.0
Kelly Olynyk   Boston Celtics    41.0        C  25.0    7-0   238.0    Gonzaga   2165160.0
...                       ...     ...      ...   ...    ...     ...        ...         ...
Shelvin Mack        Utah Jazz     8.0       PG  26.0    6-3   203.0     Butler   2433333.0
Raul Neto           Utah Jazz    25.0       PG  24.0    6-1   179.0        NaN    900000.0
Tibor Pleiss        Utah Jazz    21.0        C  26.0    7-3   256.0        NaN   2900000.0
Jeff Withey         Utah Jazz    24.0        C  26.0    7-0   231.0     Kansas    947276.0
NaN                       NaN     NaN      NaN   NaN    NaN     NaN        NaN         NaN

[455 rows x 8 columns]

Exemplo #2: Eliminando colunas com o nome da coluna

Em seu código, as colunas aprovadas são eliminadas usando nomes de coluna. o parâmetro do eixo é mantido 1, pois 1 se refere às colunas.

# importa o pacote pandas
import pandas as pd

# Cria um DataFrame a partir de um arquivo csv
data = pd.read_csv("nba.csv", index_col="Name" )

# Descarta as colunas passadas
data.drop(["Team", "Weight"], axis=1, inplace=True)

print(data)

Conforme mostrado nas imagens de saída, a nova saída não tem as colunas passadas. Esses valores foram descartados, pois o eixo foi definido como igual a 1 e as alterações foram feitas no DataFrame original, pois inplace recebeu o valor True.

DataFrame antes de eliminar colunas:

                         Team  Number Position   Age Height  Weight            College     Salary
Name
Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0
Jae Crowder    Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0
John Holland   Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN
R.J. Hunter    Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0
Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0
...                       ...     ...      ...   ...    ...     ...                ...        ...
Shelvin Mack        Utah Jazz     8.0       PG  26.0    6-3   203.0             Butler  2433333.0
Raul Neto           Utah Jazz    25.0       PG  24.0    6-1   179.0                NaN   900000.0
Tibor Pleiss        Utah Jazz    21.0        C  26.0    7-3   256.0                NaN  2900000.0
Jeff Withey         Utah Jazz    24.0        C  26.0    7-0   231.0             Kansas   947276.0
NaN                       NaN     NaN      NaN   NaN    NaN     NaN                NaN        NaN

[458 rows x 8 columns]

DataFrame após descartar colunas:

               Number Position   Age Height            College     Salary
Name
Avery Bradley     0.0       PG  25.0    6-2              Texas  7730337.0
Jae Crowder      99.0       SF  25.0    6-6          Marquette  6796117.0
John Holland     30.0       SG  27.0    6-5  Boston University        NaN
R.J. Hunter      28.0       SG  22.0    6-5      Georgia State  1148640.0
Jonas Jerebko     8.0       PF  29.0   6-10                NaN  5000000.0
...               ...      ...   ...    ...                ...        ...
Shelvin Mack      8.0       PG  26.0    6-3             Butler  2433333.0
Raul Neto        25.0       PG  24.0    6-1                NaN   900000.0
Tibor Pleiss     21.0        C  26.0    7-3                NaN  2900000.0
Jeff Withey      24.0        C  26.0    7-0             Kansas   947276.0
NaN               NaN      NaN   NaN    NaN                NaN        NaN

[458 rows x 6 columns]

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Delete rows/columns from DataFrame using Pandas.drop().

Licença

0 comentários:

Postar um comentário