Hoe u de dichtstbijzijnde waarde kunt vinden in pandas dataframe (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om de rij in een Panda DataFrame te vinden die de waarde bevat die het dichtst bij een waarde ligt die in een bepaalde kolom is opgegeven:
#find row with closest value to 101 in points column df_closest = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:1]]
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Zoek de dichtstbijzijnde waarde in Pandas DataFrame
Stel dat we het volgende panda’s DataFrame hebben dat het aantal punten bevat dat door verschillende basketbalteams is gescoord:
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
Stel nu dat we de rij van het DataFrame willen selecteren die een waarde bevat in de puntkolom die het dichtst bij 101 ligt.
We kunnen hiervoor de volgende syntaxis gebruiken:
#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
Uit het resultaat kunnen we zien dat de Netten een waarde hebben in de puntenkolom die het dichtst bij 101 ligt.
Merk op dat we tolist() ook kunnen gebruiken om alleen de dichtstbijzijnde waarde zelf weer te geven in plaats van de hele rij in het panda’s DataFrame:
#display value closest to 101 in the points column df_closest[' points ']. tolist () [100]
Merk ook op dat we de waarde na de functie argsort() kunnen wijzigen om meerdere dichtstbijzijnde waarden te vinden.
We kunnen bijvoorbeeld de volgende syntaxis gebruiken om rijen in het DataFrame te vinden met de 2 waarden die het dichtst bij 101 liggen in de puntenkolom :
#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
Uit het resultaat kunnen we zien dat de Nets de waarde hebben die het dichtst bij 101 ligt in de puntenkolom , terwijl de Mavs de waarde hebben die het dichtst bij 101 ligt in de puntenkolom .
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende panda-taken kunt uitvoeren:
Panda’s: rijen selecteren op basis van kolomwaarden
Panda’s: rijen combineren met dezelfde kolomwaarden
Panda’s: hoe u alle rijen verwijdert, behalve enkele