Como encontrar o valor mais próximo no pandas dataframe (com exemplo)
Você pode usar a seguinte sintaxe básica para encontrar a linha em um DataFrame do pandas que contém o valor mais próximo de um valor especificado em uma coluna específica:
#find row with closest value to 101 in points column df_closest = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:1]]
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: Encontre o valor mais próximo no Pandas DataFrame
Suponha que temos o seguinte DataFrame do pandas que contém o número de pontos marcados por diferentes times de basquete:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Nets', 'Hawks', 'Kings', 'Spurs', 'Cavs'], ' points ': [99, 100, 96, 104, 89, 93]}) #view DataFrame print (df) team points 0 Mavs 99 1 Nets 100 2 Hawks 96 3 Kings 104 4 Spurs 89 5 Cavs 93
Agora suponha que queremos selecionar a linha do DataFrame que contém um valor na coluna de pontos mais próximo de 101 .
Podemos usar a seguinte sintaxe para fazer isso:
#find row with closest value to 101 in points column df_closest = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:1]] #view results print (df_closest) team points 1 Nets 100
Pelo resultado, podemos perceber que os Nets possuem um valor na coluna de pontos mais próximo de 101 .
Observe que também poderíamos usar tolist() para exibir apenas o valor mais próximo em vez da linha inteira no DataFrame do pandas:
#display value closest to 101 in the points column df_closest[' points ']. tolist () [100]
Observe também que podemos alterar o valor após a função argsort() para encontrar vários valores mais próximos.
Por exemplo, podemos usar a seguinte sintaxe para encontrar linhas no DataFrame com os 2 valores mais próximos de 101 na coluna de pontos :
#find rows with two closest values to 101 in points column df_closest2 = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:2]] #view results print (df_closest2) team points 1 Nets 100 0 Mavs 99
A partir do resultado, podemos ver que os Nets têm o valor mais próximo de 101 na coluna de pontos , enquanto os Mavs têm o valor mais próximo de 101 na coluna de pontos .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns do panda:
Pandas: como selecionar linhas com base nos valores das colunas
Pandas: como combinar linhas com os mesmos valores de coluna
Pandas: como excluir todas as linhas, exceto algumas