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().
0 comentários:
Postar um comentário