Python Pandas – 用众数填充缺失的列值
众数是一组值中出现最多的值。使用 fillna() 方法并将众数设置为要填充众数的缺失列。首先,让我们导入所需的库及其别名 −
import pandas as pd
import numpy as np
创建一个有2列的DataFrame。我们使用Numpy的 np.NaN 设置了NaN值 –
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
"Units": [100, 150, np.NaN, 80, np.NaN, np.NaN]
}
)
查找NaN值的列值的众数,即在此处的Units列。 使用Units列上的mode()替换缺失值的列的众数 –
dataFrame.fillna(dataFrame['Units'].mode()[0], inplace = True)
更多Pandas文章,请阅读:Pandas教程
示例
以下是完整的代码 –
import pandas as pd
import numpy as np
# 创建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
# 查找NaN值的列值的众数,即在此处的Units列
# 使用Units列上的mode()替换缺失值的列的众数
dataFrame.fillna(dataFrame['Units'].mode()[0], inplace = True)
print"\n在用众数填充NaN值后更新的DataFrame...\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
在用众数填充NaN值后更新的DataFrame...
Car Units
0 BMW 100.0
1 Lexus 150.0
2 Lexus 80.0
3 Mustang 80.0
4 Bentley 80.0
5 Mustang 80.0