python - 用pyspark中所有列的平均值填充缺失值
问题描述
我正在尝试使用平均值填充我的 pyspark 3.0.1 数据框中的缺失值。我正在寻找类似fillna
功能的熊猫。例如
df=df.fillna(df.mean())
但到目前为止,我发现,在 pyspark 中,使用平均值填充单个列的缺失值,而不是整个数据集。
你能建议我如何fillna
在 pyspark 中实现 pandas 吗?
解决方案
你可以试试这个来获得所有列的平均值:
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)
推荐阅读
- java - 如何将 org.eclipse.paho.client.mqttv3.logging.Logger 转发到我的日志
- css - 如何使我的背景图像适合整个屏幕?
- python - Django - 如何使用装饰器在基于函数的视图中重用代码
- scala - scala将深引用数组转换为数组
> - reactjs - React js 处理可见性=隐藏的方式
- javascript - 网站无法在除 Chrome 之外的任何移动浏览器上运行
- reactjs - 将 React 常量传递给 useEffect 挂钩
- scala - IDE 中本地模式下的 Spark 闭包行为
- javascript - 为什么状态变量不能被上下文变量更新?
- linux - 如何在 Linux Bash 中获取锁定文件