ใช้ fillna() ร่วมกับ mean() เพื่อเติมค่า NaN ในคอลัมน์ตัวเลขด้วยค่าเฉลี่ยของคอลัมน์นั้น (คำนวณจากค่าที่ไม่ใช่ NaN)
ตัวอย่างโค้ด
import pandas as pd
import numpy as np
df = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
"Units": [100, 150, np.nan, 80, np.nan, np.nan]
})
print("DataFrame ก่อนเติม NaN:\n", df)
# คำนวณค่าเฉลี่ยของคอลัมน์ Units (ไม่นับ NaN)
mean_val = df['Units'].mean()
print(f"\nค่าเฉลี่ยของ Units (ไม่รวม NaN): {mean_val}")
# เติม NaN ด้วยค่าเฉลี่ย
df['Units'].fillna(value=mean_val, inplace=True)
print("\nDataFrame หลังเติม NaN ด้วย Mean:\n", df)
ผลลัพธ์
DataFrame ก่อนเติม NaN:
Car Units
0 BMW 100.0
1 Lexus 150.0
2 Lexus NaN
3 Mustang 80.0
4 Bentley NaN
5 Mustang NaN
ค่าเฉลี่ยของ Units (ไม่รวม NaN): 110.0
DataFrame หลังเติม NaN ด้วย Mean:
Car Units
0 BMW 100.0
1 Lexus 150.0
2 Lexus 110.0
3 Mustang 80.0
4 Bentley 110.0
5 Mustang 110.0
ค่าเฉลี่ยคำนวณจาก 100, 150, 80 = 110 ใช้เติมแทน NaN 3 ตำแหน่ง