Python Pandas - 使用中位數填補缺失列值


中位數將資料的高半部分與低半部分分開。使用 fillna() 方法並將中位數設定為用中位數填充缺失列。首先,讓我們使用各自的別名匯入所需的庫 -

import pandas as pd
import numpy as np

建立一個具有 2 列的 DataFrame。我們使用 Numpy np.NaN 設定 NaN 值 -

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

查詢具有 NaN 的列值的均值,即此處為 Units 列。使用 median() 在 Units 列中,用所在列的中位數替換 NaN -

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

示例

以下是程式碼 -

import pandas as pd
import numpy as np

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

print"DataFrame ...\n",dataFrame

# finding median of the column values with NaN i.e, for Units columns here
# Replace NaNs with the median of the column where it is located
dataFrame.fillna(dataFrame['Units'].median(), inplace = True)

print"\nUpdated Dataframe after filling NaN values with median...\n",dataFrame

輸出

這將產生以下輸出 -

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

Updated Dataframe after filling NaN values with median...
       Car   Units
0    Lexus   100.0
1      BMW   150.0
2     Audi   100.0
3  Bentley    80.0
4  Mustang   100.0
5    Tesla   100.0

更新於: 21-Sep-2021

2K+ 瀏覽次數

開啟你的 職業

完成課程獲取認證

開始
廣告
© . All rights reserved.