众数是一组值中出现次数最多的值。使用该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 查找列值的模式,即此处的单位列。将 NaN 替换为它所在的列的模式,mode()在 Units 列上使用 -
dataFrame.fillna(dataFrame['Units'].mode()[0], inplace = True)
以下是完整的代码 -
import pandas as pd import numpy as np # 创建数据帧 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 列 # 用它所在列的模式替换 NaNs dataFrame.fillna(dataFrame['Units'].mode()[0], inplace = True) print"\nUpdated Dataframe after filling NaN values with mode...\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 mode... 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