仅四舍五入 .fillna 值。不是 python 中的整列

Rounding off .fillna values only. Not the entire column in python

我正在尝试创建一个函数,该函数将根据平均值或中位数的选择来估算值。

我已经做到了,我的问题是我只想对我估算的值进行四舍五入。但我的做法是四舍五入列中的每个值,而不仅仅是根据需要填充的值。

def conditional_impute(input_df, choice='median'):
    new_df = input_df.copy()
    
    if choice == 'median':
        new_df['Age'] = round(new_df.groupby(['Sex', 'Pclass'])['Age'].transform(func = lambda x: x.fillna(x.median())),1)
        
    elif choice == 'mean':
        new_df['Age'] = round(new_df.groupby(['Sex', 'Pclass'])['Age'].transform(func = lambda x: x.fillna(x.mean())),1)
        
    else:
        raise ValueError('Please choose either median or mean as your impute choice.')
    
    return new_df

那么我怎样才能只对推算值进行四舍五入呢?

您对整列应用了舍入函数。您是否尝试过类似的方法并将其仅应用于中位数(或均值)。

if choice == 'median':
        new_df['Age'] = new_df.groupby(['Sex', 'Pclass'])['Age'].transform(func = lambda x: x.fillna(round(x.median(),1)))