Python 如何使用模式/平均值在pandas数据帧中填充整个缺失值?

Python 如何使用模式/平均值在pandas数据帧中填充整个缺失值?,python,pandas,mode,imputation,Python,Pandas,Mode,Imputation,我知道下面每一列分别填写的代码 data['Native Country'].fillna(data['Native Country'].mode(), inplace=True) 但我正在处理一个有50行的数据集,其中有20个分类值需要插补。 是否有用于输入整个数据集的单行代码???使用并选择第一行,因为如果返回相同的最大发生率,则所有值: data = pd.DataFrame({ 'A':list('abcdef'), 'col1':[4,5,4,5,5

我知道下面每一列分别填写的代码

data['Native Country'].fillna(data['Native Country'].mode(), inplace=True)
但我正在处理一个有50行的数据集,其中有20个分类值需要插补。 是否有用于输入整个数据集的单行代码???

使用并选择第一行,因为如果返回相同的最大发生率,则所有值:

data = pd.DataFrame({
        'A':list('abcdef'),
         'col1':[4,5,4,5,5,4],
         'col2':[np.nan,8,3,3,2,3],
         'col3':[3,3,5,5,np.nan,np.nan],
         'E':[5,3,6,9,2,4],
         'F':list('aaabbb')
})

cols = ['col1','col2','col3']

print (data[cols].mode())
   col1  col2  col3
0     4   3.0   3.0
1     5   NaN   5.0

data[cols] = data[cols].fillna(data[cols].mode().iloc[0])
    
print (data)
   A  col1  col2  col3  E  F
0  a     4   3.0   3.0  5  a
1  b     5   8.0   3.0  3  a
2  c     4   3.0   5.0  6  a
3  d     5   3.0   5.0  9  b
4  e     5   2.0   3.0  2  b
5  f     4   3.0   3.0  4  b

您能解释一下我们为什么使用iloc[0]?@AntonyJoy-如果选中打印(数据[cols].mode())列
col1
col3
,有多种模式(因为这里3乘以4,5 in
col1
和2乘以4,5 in
col3
的最大计数数),只需替换为一个值,所以使用了第一个值。