Як знайти найближче значення в pandas dataframe (з прикладом)


Ви можете використовувати наступний базовий синтаксис, щоб знайти рядок у pandas DataFrame, який містить значення, найближче до значення, указаного в певному стовпці:

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

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: знайдіть найближче значення в Pandas DataFrame

Припустімо, що ми маємо такий фрейм даних pandas, який містить кількість очок, набраних різними баскетбольними командами:

 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

Тепер припустімо, що ми хочемо вибрати рядок DataFrame, який містить значення в стовпці з крапками , найближче до 101 .

Для цього ми можемо використати такий синтаксис:

 #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

З результату ми бачимо, що мережі мають значення в стовпці очок, найближче до 101 .

Зауважте, що ми також можемо використовувати tolist() , щоб відобразити лише найближче значення, а не весь рядок у pandas DataFrame:

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

[100]

Також зауважте, що ми можемо змінити значення після функції argsort() , щоб знайти кілька найближчих значень.

Наприклад, ми можемо використовувати наступний синтаксис, щоб знайти рядки в DataFrame з 2 значеннями, найближчими до 101, у стовпці точок :

 #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

З результату ми бачимо, що Нетс мають найближче значення до 101 у стовпці очок, тоді як Мавс мають найближче значення до 101 у стовпці очок .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші поширені завдання панди:

Pandas: як вибрати рядки на основі значень стовпців
Pandas: як об’єднати рядки з однаковими значеннями стовпців
Pandas: як видалити всі рядки, крім деяких

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *