如何使用Pandas用平均值填充空值?[duplicate]

r7knjye2  于 2023-02-07  发布在  其他
关注(0)|答案(2)|浏览(246)
    • 此问题在此处已有答案**:

Pandas: filling missing values by mean in each group(12个答案)
3天前关闭。
很难理解为什么apply函数在这里不起作用,我试图用相应质量等级的平均销售价格(OverallQual)来填充SalePrice的空值
我期望函数遍历每一行,并返回相应OverallQual特性的平均SalePrice,其中SalePrice为空,否则返回原始SalePrice。

sale_price_by_qual = df.groupby('OverallQual').mean()['SalePrice']

def fill_sales_price(SalePrice, OverallQual):
   if np.isnan(SalePrice):
      return sale_price_by_qual[SalePrice]
   else:
      return SalePrice

df[SalePrice] = df.apply(lambda x: fill_sales_price(x['SalePrice], x['OverallQaul]), axis=1)

密钥错误:nan

sr4lhrrt

sr4lhrrt1#

你能不能把平均值保存到一个变量中然后执行.fillna()?
x =平均值

df[SalePrice] = df[SalePrice].fillna(x)
yqyhoc1h

yqyhoc1h2#

试试这个

def fill_sales_price(SalePrice, OverallQual):
  if np.isnan(SalePrice):
     return sale_price_by_qual[OverallQual]
  else:
     return SalePrice

df['SalePrice'] = df.apply(lambda x: fill_sales_price(x['SalePrice'], x['OverallQual']), axis=1)

相关问题