Jak znaleźć najbliższą wartość w ramce danych pandas (z przykładem)


Możesz użyć następującej podstawowej składni, aby znaleźć wiersz w ramce danych pandy, który zawiera wartość najbliższą wartości określonej w określonej kolumnie:

 #find row with closest value to 101 in points column
df_closest = df. iloc [(df[' dots ']- 101 ). abs (). argsort ()[:1]]

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Znajdź najbliższą wartość w Pandas DataFrame

Załóżmy, że mamy następującą ramkę danych pand zawierającą liczbę punktów zdobytych przez różne drużyny koszykówki:

 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

Załóżmy teraz, że chcemy wybrać wiersz DataFrame, który zawiera wartość w kolumnie z kropkami najbliższą 101 .

W tym celu możemy użyć następującej składni:

 #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

Z wyniku widzimy, że Nets mają w kolumnie punktów wartość najbliższą 101 .

Zauważ, że możemy również użyć tolist() do wyświetlenia tylko najbliższej wartości zamiast całego wiersza w ramce danych pandy:

 #display value closest to 101 in the points column
df_closest[' points ']. tolist ()

[100]

Należy również pamiętać, że możemy zmienić wartość po funkcji argsort() , aby znaleźć wiele najbliższych wartości.

Na przykład możemy zastosować następującą składnię, aby znaleźć w DataFrame wiersze z 2 wartościami najbliższymi 101 w kolumnie punktów :

 #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

Z wyniku widzimy, że Nets mają w kolumnie punktów wartość najbliższą 101 , podczas gdy Mavs mają w kolumnie punktów najbliższą wartość 101 .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania związane z pandą:

Pandy: jak wybierać wiersze na podstawie wartości kolumn
Pandy: jak łączyć wiersze z tymi samymi wartościami kolumn
Pandy: jak usunąć wszystkie wiersze z wyjątkiem niektórych

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *