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

Python - จะเติมค่า NAN ด้วยค่าเฉลี่ยใน Pandas ได้อย่างไร


สำหรับค่า mean ให้ใช้ฟังก์ชัน mean() คำนวณค่าเฉลี่ยสำหรับคอลัมน์ด้วย NaN และใช้ fillna() เพื่อเติมค่า NaN ด้วยค่าเฉลี่ย

ให้เรานำเข้าไลบรารีที่จำเป็นก่อน -

import pandas as pd
import numpy as np

สร้าง DataFrame ที่มี 2 คอลัมน์และค่า NaN บางส่วน เราได้ป้อนค่า NaN เหล่านี้โดยใช้ numpy np.NaN -

dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],"Units": [100, 150, np.NaN, 80, np.NaN, np.NaN]
   }
)

ค้นหาค่าเฉลี่ยของค่าคอลัมน์ด้วย NaN เช่นสำหรับคอลัมน์หน่วยที่นี่ ดังนั้นคอลัมน์หน่วยจึงมี 100, 150 และ 80; ดังนั้น ค่าเฉลี่ยจะเป็น 110 −

meanVal = dataFrame['Units'].mean()

แทนที่ NaN ด้วยค่าเฉลี่ยของคอลัมน์ที่มันตั้งอยู่ ค่าเฉลี่ยที่คำนวณข้างต้นคือ 110 ดังนั้นค่า NaN จะถูกแทนที่ด้วย 110 −

dataFrame['Units'].fillna(value=meanVal, inplace=True)

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

import pandas as pd
import numpy as np

# Create DataFrame
dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],"Units": [100, 150, np.NaN, 80, np.NaN, np.NaN]
   }
)

print"DataFrame ...\n",dataFrame

# finding mean of the column values with NaN i.e, for Units columns here
# so the Units column has 100, 150 and 80; therefore the mean would ne 110
meanVal = dataFrame['Units'].mean()

# Replace NaNs with the mean of the column where it is located
# the mean calculated above is 110, so NaN values will be replaced with 110
dataFrame['Units'].fillna(value=meanVal, inplace=True)
print"\nUpdated Dataframe after filling NaN values with mean...\n",dataFrame

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

DataFrame ...
       Car   Units
0      BMW   100.0
1    Lexus   150.0
2    Lexus     NaN
3  Mustang    80.0
4  Bentley     NaN
5  Mustang     NaN

Updated Dataframe after filling NaN values with 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