Como obter números de linha em um dataframe do pandas
Freqüentemente, você pode querer obter números de linha em um DataFrame do pandas que contenha um determinado valor.
Felizmente, isso é fácil de fazer usando a função .index .
Este tutorial mostra vários exemplos de uso prático desta função.
Exemplo 1: Obtenha números de linhas que correspondam a um determinado valor
Suponha que temos o seguinte DataFrame do pandas:
import pandas as pd #createDataFrame df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'assists': [5, 7, 7, 9, 12], 'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']}) #view DataFrame print (df) team assists points 0 25 5 Mavs 1 12 7 Mavs 2 15 7 Spurs 3 14 9 Celtics 4 19 12 Warriors
Podemos usar a seguinte sintaxe para obter os números das linhas onde “team” é igual a Mavs:
#get row numbers where 'team' is equal to Mavs df[df[' team '] == ' Mavs ']. index Int64Index([0, 1], dtype='int64')
Podemos ver que o nome da equipe é igual a ‘Mavs’ nas linhas índice 0 e 1 .
Também podemos obter os números das linhas onde o nome da equipe é encontrado em uma determinada lista de nomes de equipes:
#get row numbers where 'team' is equal to Mavs or Spurs filter_list = [' Mavs ', ' Spurs '] #return only rows where team is in the list of team names df[df. team . isin (filter_list)]. index Int64Index([0, 1, 2], dtype='int64')
Podemos ver que o nome do time é igual a ‘Mavs’ ou ‘Spurs’ nos índices de linha 0 , 1 e 2 .
Exemplo 2: Obtenha um número de linha exclusivo
Suponha que temos o seguinte DataFrame do pandas:
import pandas as pd #createDataFrame df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'assists': [5, 7, 7, 9, 12], 'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})
Se você souber que uma única linha corresponde a um determinado valor, poderá recuperar esse número de linha exclusivo usando a seguinte sintaxe:
#get the row number where team is equal to Celtics df[df[' team '] == ' Celtics ']. index [ 0 ] 3
Podemos ver que a equipe é igual a “Celtics” no índice de linha número 3 .
Exemplo 3: Obtenha a soma dos números das linhas
Suponha que temos o seguinte DataFrame do pandas:
import pandas as pd #createDataFrame df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'assists': [5, 7, 7, 9, 12], 'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})
Se quiser saber o número total de linhas em que uma coluna é igual a um determinado valor, você pode usar a seguinte sintaxe:
#find total number of rows where team is equal to Mavs len (df[df[' team '] == ' Celtics ']. index ) 2
Podemos ver que esta equipe é igual a “Mavs” em um total de 2 linhas.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Como encontrar valores únicos em múltiplas colunas no Pandas
Como filtrar um DataFrame do Pandas em múltiplas condições
Como contar valores ausentes em um DataFrame do Pandas