วิธีค้นหาค่าที่ใกล้ที่สุดใน 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: วิธีลบแถวทั้งหมดยกเว้นบางแถว

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *