首页 > 解决方案 > 用pyspark中所有列的平均值填充缺失值

问题描述

我正在尝试使用平均值填充我的 pyspark 3.0.1 数据框中的缺失值。我正在寻找类似fillna功能的熊猫。例如

df=df.fillna(df.mean())

但到目前为止,我发现,在 pyspark 中,使用平均值填充单个列的缺失值,而不是整个数据集。

你能建议我如何fillna在 pyspark 中实现 pandas 吗?

标签: pythonapache-sparkpyspark

解决方案


你可以试试这个来获得所有列的平均值:

import pyspark.sql.functions as F
import numpy as np

avg = np.mean([i for i in df.select([F.mean(c) for c in df.columns]).collect()[0] if i is not None])

df2 = df.fillna(avg)

推荐阅读