كيفية البحث عن أقرب قيمة في 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
لنفترض أن لدينا DataFrame الباندا التالي الذي يحتوي على عدد النقاط التي سجلتها فرق كرة السلة المختلفة:
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 ذات القيمتين الأقرب إلى 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 في عمود النقاط .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ مهام الباندا الشائعة الأخرى:
الباندا: كيفية تحديد الصفوف بناءً على قيم الأعمدة
الباندا: كيفية دمج الصفوف مع نفس قيم الأعمدة
الباندا: كيفية حذف جميع الصفوف باستثناء بعضها