Pandas: วิธีค้นหาค่าที่ไม่ซ้ำและละเว้น nan


คุณสามารถกำหนดฟังก์ชันที่กำหนดเองต่อไปนี้เพื่อค้นหาแพนด้าเพื่อหาค่าที่ไม่ซ้ำและละเว้นค่า NaN:

 def unique_no_nan(x):
    return x. dropna (). single ()

ฟังก์ชันนี้จะส่งคืนชุดแพนด้าที่มีค่าที่ไม่ซ้ำกันทุกค่า ยกเว้นค่า NaN

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในสถานการณ์ต่างๆ กับ Pandas DataFrame ต่อไปนี้:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Celtics', 'Celtics', 'Celtics'],
                   ' points ': [95, 95, 100, 113, 100, np.nan]})

#view DataFrame
print (df)

      team points
0 Mavs 95.0
1 Mavs 95.0
2 Mavs 100.0
3 Celtics 113.0
4 Celtics 100.0
5 Celtics NaN

ตัวอย่างที่ 1: ค้นหาค่าที่ไม่ซ้ำในคอลัมน์ Pandas และละเว้นค่า NaN

สมมติว่าเราใช้ฟังก์ชัน pandas Unique() เพื่อแสดงค่าที่ไม่ซ้ำทั้งหมดในคอลัมน์ จุด ของ DataFrame:

 #display unique values in 'points' column
df[' points ']. single ()

array([ 95., 100., 113., no])

โปรดทราบว่าฟังก์ชัน Unique() จะรวม nan ไว้ในผลลัพธ์ตามค่าเริ่มต้น

อย่างไรก็ตาม สมมติว่าเราใช้ฟังก์ชัน Unique_no_nan() ที่กำหนดเองแทนเพื่อแสดงค่าที่ไม่ซ้ำในคอลัมน์ จุด :

 #display unique values in 'points' column and ignore NaN
unique_no_nan(df[' points '])

array([ 95., 100., 113.])

ฟังก์ชันของเราส่งคืนค่าที่ไม่ซ้ำทุกค่าในคอลัมน์ จุด ไม่รวม NaN

ตัวอย่างที่ 2: ค้นหาค่าที่ไม่ซ้ำใน Pandas Groupby และละเว้นค่า NaN

สมมติว่าเราใช้ฟังก์ชัน pandas groupby() และ agg() เพื่อแสดงค่าที่ไม่ซ้ำกันทั้งหมดในคอลัมน์ point ซึ่งจัดกลุ่มตามคอลัมน์ ทีม :

 #display unique values in 'points' column grouped by team
df. groupby (' team ')[' points ']. agg ([' single '])

	unique
team	
Celtics [113.0, 100.0, nah]
Mavs [95.0, 100.0]

โปรดทราบว่าฟังก์ชัน Unique() จะรวม nan ไว้ในผลลัพธ์ตามค่าเริ่มต้น

อย่างไรก็ตาม สมมติว่าเราใช้ฟังก์ชัน Unique_no_nan() ที่กำหนดเองแทนเพื่อแสดงค่าที่ไม่ซ้ำในคอลัมน์ คะแนน ซึ่งจัดกลุ่มตามคอลัมน์ ทีม :

 #display unique values in 'points' column grouped by team and ignore NaN
df. groupby (' team ')[' points ']. apply ( lambda x: unique_no_nan(x))

team
Celtics [113.0, 100.0]
Mavs [95.0, 100.0]
Name: points, dtype: object

ฟังก์ชันของเราจะส่งคืนค่าที่ไม่ซ้ำกันทุกค่าในคอลัมน์ คะแนน สำหรับแต่ละ ทีม ไม่นับค่า NaN

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันทั่วไปอื่น ๆ ในแพนด้า:

Pandas: วิธีเลือกแถวเดี่ยวใน DataFrame
Pandas: วิธีรับค่าที่ไม่ซ้ำจากคอลัมน์ดัชนี
นุ่น: วิธีนับชุดค่าผสมที่ไม่ซ้ำของสองคอลัมน์

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

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