Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เติมค่า NaN ใน Pandas DataFrame ด้วยค่าเฉลี่ย (Mean) ของคอลัมน์

ใช้ 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 ตำแหน่ง