วิธีเลือกแถวที่มีค่า nan ใน pandas (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้เพื่อเลือกแถวที่มีค่า NaN ในแพนด้า:

วิธีที่ 1: เลือกแถวที่มีค่า NaN ในคอลัมน์ใดก็ได้

 df. loc [df. isnull (). any (axis= 1 )]

วิธีที่ 2: เลือกแถวที่มีค่า NaN ในคอลัมน์เฉพาะ

 df. loc [df[' this_column ']. isnull ()]

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.NaN, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, np.NaN, 9, 9, np.NaN],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, np.NaN]})

#view DataFrame
print (df)

ตัวอย่างที่ 1: เลือกแถวที่มีค่า NaN ในคอลัมน์ใดก็ได้

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเลือกแถวที่มีค่า NaN ในคอลัมน์ใดก็ได้ของ DataFrame:

 #create new DataFrame that only contains rows with NaNs in any column
df_nan_rows = df. loc [df. isnull (). any (axis= 1 )]

#view results
print (df_nan_rows)

  team points assists rebounds
1 B NaN 7.0 8.0
4 E 14.0 NaN 6.0
7 H 28.0 NaN NaN   

โปรดทราบว่าแต่ละแถวของ DataFrame ผลลัพธ์จะมีค่า NaN อยู่ในคอลัมน์อย่างน้อยหนึ่งคอลัมน์

ตัวอย่างที่ 2: เลือกแถวที่มีค่า NaN ในคอลัมน์เฉพาะ

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเลือกแถวที่มีค่า NaN ในคอลัมน์ ตัวช่วย ของ DataFrame:

 #create new DataFrame that only contains rows with NaNs in assists column
df_assists_nans = df. loc [df[' assists ']. isnull ()]
#view results
print (df_assists_nans)

  team points assists rebounds
4 E 14.0 NaN 6.0
7 H 28.0 NaN NaN   

โปรดทราบว่าแต่ละแถวของ DataFrame ผลลัพธ์จะมีค่า NaN ในคอลัมน์ ตัวช่วย

มีแถวที่มีค่า NaN ในคอลัมน์ จุด แต่แถวนี้ไม่ได้ถูกเลือก เนื่องจากไม่มีค่า NaN ในคอลัมน์ ช่วยเหลือ ด้วย

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

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

Pandas: วิธีลบแถวที่มีค่า NaN
Pandas: วิธีแทนที่ค่า NaN ด้วยสตริง
Pandas: วิธีเติมค่า NaN ด้วยค่าเฉลี่ย

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

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