ความแตกต่างระหว่าง isna () และ isnull () ใน pandas


65

ฉันใช้แพนด้ามานานแล้ว แต่ฉันไม่เข้าใจว่าอะไรคือความแตกต่างระหว่างisna()และisnull()ในนุ่น และที่สำคัญกว่านั้นคืออันไหนที่จะใช้สำหรับการระบุค่าที่หายไปในดาต้าเฟรม

ความแตกต่างพื้นฐานพื้นฐานของวิธีการตรวจพบค่าเป็นอย่างใดอย่างหนึ่งnaหรือnullคืออะไร?


1
ทั้งสองฟังก์ชั่นเหมือนกัน ทั้งสองให้ค่าที่หายไป
Ankit Seth

คำตอบ:


86

นุ่นVSisna()isnull()

ฉันสมมติว่าคุณหมายถึงVSpandas.DataFrame.isna() pandas.DataFrame.isnull()เพื่อไม่ให้สับสนpandas.isnull()ซึ่งตรงกันข้ามกับทั้งสองข้างต้นไม่ใช่วิธีของคลาส DataFrame

ทั้งสองวิธี DataFrame ทำว่าสิ่งเดียวกัน! แม้แต่เอกสารของพวกเขาก็เหมือนกัน คุณยังสามารถยืนยันเรื่องนี้ในนุ่นรหัส

แต่ทำไมมีสองวิธีที่มีชื่อต่างกันทำอย่างเดียวกัน

นี่เป็นเพราะ DataFrames ของแพนด้าอยู่บนพื้นฐานของ DataFrames ของ R ใน R naและnullมีสองสิ่งที่แยกจากกัน อ่านโพสต์นี้สำหรับข้อมูลเพิ่มเติม

อย่างไรก็ตามในไพ ธ อนนั้น Pandas นั้นถูกสร้างขึ้นจากด้านบนของ numpy ซึ่งไม่มีnanullค่าหรือไม่มีเลย แทนNaNค่าตัวเลขมีค่า (ซึ่งหมายถึง "Not a Number") ดังนั้นแพนด้าก็ใช้NaNค่าเช่นกัน

ในระยะสั้น

  • ในการตรวจสอบNaNค่าใช้งานจำนวนnp.isnan()มาก

  • ในการตรวจสอบNaNค่าใช้หมีแพนด้าอย่างใดอย่างหนึ่งหรือ.isna() ค่าได้รับมาจากความจริงที่ว่านุ่นจะถูกสร้างขึ้นบน numpy ในขณะที่ชื่อของทั้งสองฟังก์ชั่นมาจาก DataFrames อาร์เอสที่มีโครงสร้างการทำงานและหมีแพนด้าพยายามที่จะเลียนแบบ.isnull()
    NaN


3
สิ่งนี้อธิบายทุกอย่างและใช่ฉันต้องการอนุมาน 'pandas.DataFrame.isna ()' vs 'pandas.DataFrame.isnull ()' ขอบคุณสำหรับคำอธิบายรายละเอียด
Vaibhav Thakur
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.