Pandas fornecem um método exclusivo para recuperar linhas de um DataFrame. O método DataFrame.loc[]
é um método que usa apenas rótulos de índice e retorna linha ou dataframe se o rótulo de índice existir no DataFrame do chamador.
Sintaxe: pandas.DataFrame.loc[]
Parâmetros:
- Index label: String ou lista de string de rótulo de índice de linhas
Tipo de retorno: Dataframe ou Series depende do parâmetro
Para baixar o CSV usado no código, clique aqui.
Exemplo #1: Extraindo uma única linha
Neste exemplo, a coluna Name
é definida como a coluna de índice e, em seguida, duas linhas únicas são extraídas uma a uma na forma de série usando rótulo de índice de linhas.
# Importa o pacote pandas import pandas as pd # Criando DataFrame a partir de um arquico csv data = pd.read_csv("nba.csv", index_col="Name") # recuperar linhas pelo método loc first = data.loc["Avery Bradley"] second = data.loc["R.J. Hunter"] print(first, "\n\n\n", second)
Conforme mostrado na saída abaixo, duas séries foram retornadas, pois havia apenas um parâmetro em ambos as vezes.
Saída:
Team Boston Celtics Number 0 Position PG Age 25 Height 6-2 Weight 180 College Texas Salary 7.73034e+06 Name: Avery Bradley, dtype: object Team Boston Celtics Number 28 Position SG Age 22 Height 6-5 Weight 185 College Georgia State Salary 1.14864e+06 Name: R.J. Hunter, dtype: object
Exemplo #2: Parâmetros múltiplos
Neste exemplo, a coluna Name
é definida como a coluna do índice e, em seguida, duas linhas únicas são extraídas ao mesmo tempo, passando uma lista como parâmetro.
# Importa o pacote pandas import pandas as pd # Criando DataFrame a partir de um arquico csv data = pd.read_csv("nba.csv", index_col="Name") # recuperar linhas pelo método loc linhas = data.loc[["Avery Bradley", "R.J. Hunter"]] # Verificando o tipo do objeto linhas print(type(linhas)) print(linhas)
Conforme mostrado abaixo, desta vez o tipo de dados do valor retornado é um DataFrame. Ambas as linhas foram extraídas e exibidas como um novo DataFrame.
Saída:
<class 'pandas.core.frame.DataFrame'> 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 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0
Exemplo #3: Extraindo várias linhas com o mesmo índice
Neste exemplo, a coluna Team
é definida como a coluna de índice e um nome da coluna Team
é passado para o método .loc
para verificar se todos os valores com o mesmo nome da equipe foram retornados ou não.
# Importa o pacote pandas import pandas as pd # Criando DataFrame a partir de um arquico csv data = pd.read_csv("nba.csv", index_col="Team") # recuperar linhas pelo método loc linhas = data.loc["Utah Jazz"] # Verificando o tipo do objeto linhas print(type(linhas)) print(linhas)
Conforme mostrado na saída do script acima, todas as linhas com o nome da equipe “Utah Jazz” foram retornadas na forma de um dataframe.
Saída:
<class 'pandas.core.frame.DataFrame'> Name Number Position Age Height Weight College Salary Team Utah Jazz Trevor Booker 33.0 PF 28.0 6-8 228.0 Clemson 4775000.0 Utah Jazz Trey Burke 3.0 PG 23.0 6-1 191.0 Michigan 2658240.0 Utah Jazz Alec Burks 10.0 SG 24.0 6-6 214.0 Colorado 9463484.0 Utah Jazz Dante Exum 11.0 PG 20.0 6-6 190.0 NaN 3777720.0 Utah Jazz Derrick Favors 15.0 PF 24.0 6-10 265.0 Georgia Tech 12000000.0 Utah Jazz Rudy Gobert 27.0 C 23.0 7-1 245.0 NaN 1175880.0 Utah Jazz Gordon Hayward 20.0 SF 26.0 6-8 226.0 Butler 15409570.0 Utah Jazz Rodney Hood 5.0 SG 23.0 6-8 206.0 Duke 1348440.0 Utah Jazz Joe Ingles 2.0 SF 28.0 6-8 226.0 NaN 2050000.0 Utah Jazz Chris Johnson 23.0 SF 26.0 6-6 206.0 Dayton 981348.0 Utah Jazz Trey Lyles 41.0 PF 20.0 6-10 234.0 Kentucky 2239800.0 Utah Jazz Shelvin Mack 8.0 PG 26.0 6-3 203.0 Butler 2433333.0 Utah Jazz Raul Neto 25.0 PG 24.0 6-1 179.0 NaN 900000.0 Utah Jazz Tibor Pleiss 21.0 C 26.0 7-3 256.0 NaN 2900000.0 Utah Jazz Jeff Withey 24.0 C 26.0 7-0 231.0 Kansas 947276.0
Exemplo #4: Extração de linhas entre dois rótulos de índice
Neste exemplo, dois rótulos de índice de linhas são passados e todas as linhas que caem entre esses dois rótulos de índice foram retornadas (Ambos os rótulos de índice inclusivos).
# Importa o pacote pandas import pandas as pd # Criando DataFrame a partir de um arquico csv data = pd.read_csv("nba.csv", index_col="Name") # recuperar linhas pelo método loc linhas = data.loc["Avery Bradley":"Isaiah Thomas"] # Verificando o tipo do objeto linhas print(type(linhas)) print(linhas)
Conforme mostrado abaixo, todas as linhas que caem entre os dois rótulos de índice passados são retornadas na forma de um DataFrame.
Saída:
<class 'pandas.core.frame.DataFrame'> 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 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 Terry Rozier Boston Celtics 12.0 PG 22.0 6-2 190.0 Louisville 1824360.0 Marcus Smart Boston Celtics 36.0 PG 22.0 6-4 220.0 Oklahoma State 3431040.0 Jared Sullinger Boston Celtics 7.0 C 24.0 6-9 260.0 Ohio State 2569260.0 Isaiah Thomas Boston Celtics 4.0 PG 27.0 5-9 185.0 Washington 6912869.0
Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Extracting rows using .loc[].
0 comentários:
Postar um comentário