วิธีค้นหาค่าที่ใกล้ที่สุดใน pandas dataframe (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อค้นหาแถวใน 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
จากผลลัพธ์เราจะเห็นว่า Nets มีค่าอยู่ใน คอลัมน์ คะแนนที่ใกล้เคียงที่สุดกับ 101
โปรดทราบว่าเรายังสามารถใช้ tolist() เพื่อแสดงเฉพาะค่าที่ใกล้เคียงที่สุดแทนการแสดงแถวทั้งหมดใน 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
จากผลลัพธ์ เราจะเห็นว่า Nets มีค่าใกล้เคียงที่สุดถึง 101 ในคอลัมน์ คะแนน ในขณะที่ Mavs มีค่าใกล้เคียงที่สุดถึง 101 ในคอลัมน์ คะแนน
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานแพนด้าทั่วไปอื่นๆ:
นุ่น: วิธีเลือกแถวตามค่าคอลัมน์
Pandas: วิธีรวมแถวที่มีค่าคอลัมน์เดียวกัน
Pandas: วิธีลบแถวทั้งหมดยกเว้นบางแถว