Python Pandas – 使用中位数填充缺失的列值
中位数将数据分为较高部分和较低部分。使用fillna()方法,并设置中位数以使用中位数填充丢失的列。首先,让我们使用它们各自的别名导入所需的库-
import pandas as pd
import numpy as np
创建具有2列的DataFrame。我们使用Numpy设置了NaN值 np.NaN −
dataFrame = pd.DataFrame(
{
"Car": ['Lexus', 'BMW', 'Audi', 'Bentley', 'Mustang', 'Tesla'],"Units": [100, 150, np.NaN, 80, np.NaN, np.NaN]
}
)
找到具有NaN的列值的中位数,即此处的Units列。使用Units列上的median()替换该列所在位置的NaN –
dataFrame.fillna(dataFrame['Units'].median(), inplace = True)
更多Pandas文章,请阅读:Pandas教程
示例
以下是代码 −
import pandas as pd
import numpy as np
# 创建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
# 找到具有NaN的列值的中位数,即此处的Units列。使用它所在的列的中位数替换NaN
dataFrame.fillna(dataFrame['Units'].median(), inplace = True)
print"\n将NaN值替换为中位数后的更新的DataFrame ...\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
将NaN值用中位数填充后的更新的DataFrame ...
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