แพนด้า - ทำความสะอาดเซลล์ว่าง


เซลล์ว่าง

เซลล์ว่างอาจทำให้คุณได้ผลลัพธ์ที่ไม่ถูกต้องเมื่อคุณวิเคราะห์ข้อมูล


ลบแถว

วิธีหนึ่งในการจัดการเซลล์ว่างคือการเอาแถวที่มีเซลล์ว่างออก

ซึ่งเป็นเรื่องปกติ เนื่องจากชุดข้อมูลอาจมีขนาดใหญ่มาก และการลบสองสามแถวจะไม่ส่งผลกระทบอย่างมากต่อผลลัพธ์

ตัวอย่าง

ส่งคืน Data Frame ใหม่โดยไม่มีเซลล์ว่าง:

import pandas as pd

df = pd.read_csv('data.csv')

new_df = df.dropna()

print(new_df.to_string())

ในตัวอย่างการทำความสะอาด เราจะใช้ไฟล์ CSV ชื่อ 'dirtydata.csv'

ดาวน์โหลดdirtydata.csv หรือเปิด dirtydata.csv

หมายเหตุ:โดยค่าเริ่มต้นdropna()เมธอดจะคืนค่า DataFrame ใหม่และจะไม่เปลี่ยนต้นฉบับ

หากคุณต้องการเปลี่ยน DataFrame ดั้งเดิม ให้ใช้ inplace = Trueอาร์กิวเมนต์:

ตัวอย่าง

ลบแถวทั้งหมดที่มีค่า NULL:

import pandas as pd

df = pd.read_csv('data.csv')

df.dropna(inplace = True)

print(df.to_string())

หมายเหตุ:ตอนนี้dropna(inplace = True)จะไม่ส่งคืน DataFrame ใหม่ แต่จะลบแถวทั้งหมดที่มีค่า NULL ออกจาก DataFrame ดั้งเดิม


แทนที่ค่าว่าง

อีกวิธีหนึ่งในการจัดการกับเซลล์ว่างคือการแทรก ค่า ใหม่แทน

วิธีนี้ทำให้คุณไม่จำเป็นต้องลบแถวทั้งหมดเพียงเพราะเซลล์ว่างบางเซลล์

วิธีfillna()นี้ช่วยให้เราสามารถแทนที่เซลล์ว่างด้วยค่า:

ตัวอย่าง

แทนที่ค่า NULL ด้วยตัวเลข 130:

import pandas as pd

df = pd.read_csv('data.csv')

df.fillna(130, inplace = True)

แทนที่เฉพาะสำหรับคอลัมน์ที่ระบุ

ตัวอย่างข้างต้นจะแทนที่เซลล์ว่างทั้งหมดใน Data Frame ทั้งหมด

หากต้องการแทนที่ค่าว่างสำหรับคอลัมน์เดียว ให้ระบุชื่อคอลัมน์สำหรับ DataFrame:

ตัวอย่าง

แทนที่ค่า NULL ในคอลัมน์ "แคลอรี่" ด้วยตัวเลข 130:

import pandas as pd

df = pd.read_csv('data.csv')

df["Calories"].fillna(130, inplace = True)

w3schools CERTIFIED . 2021

ได้รับการรับรอง!

ทำโมดูล Pandas ให้เสร็จ ทำแบบฝึกหัด ทำข้อสอบ แล้วคุณจะกลายเป็น w3schools ที่ผ่านการรับรอง!

$10 ลงทะเบียน

แทนที่โดยใช้ค่าเฉลี่ย ค่ามัธยฐาน หรือโหมด

วิธีทั่วไปในการแทนที่เซลล์ว่างคือการคำนวณค่าเฉลี่ย ค่ามัธยฐาน หรือค่าโหมดของคอลัมน์

Pandas ใช้mean() median()and mode()วิธีในการคำนวณค่าที่เกี่ยวข้องสำหรับคอลัมน์ที่ระบุ:

ตัวอย่าง

คำนวณ MEAN และแทนที่ค่าว่างด้วย:

import pandas as pd

df = pd.read_csv('data.csv')

x = df["Calories"].mean()

df["Calories"].fillna(x, inplace = True)

ค่าเฉลี่ย = ค่าเฉลี่ย (ผลรวมของค่าทั้งหมดหารด้วยจำนวนค่า)

ตัวอย่าง

คำนวณค่ามัธยฐานและแทนที่ค่าว่างด้วย:

import pandas as pd

df = pd.read_csv('data.csv')

x = df["Calories"].median()

df["Calories"].fillna(x, inplace = True)

ค่ามัธยฐาน = ค่าที่อยู่ตรงกลาง หลังจากที่คุณได้จัดเรียงค่าทั้งหมดจากน้อยไปมากแล้ว

ตัวอย่าง

คำนวณ MODE และแทนที่ค่าว่างด้วย:

import pandas as pd

df = pd.read_csv('data.csv')

x = df["Calories"].mode()[0]

df["Calories"].fillna(x, inplace = True)

Mode = ค่าที่ปรากฏบ่อยที่สุด