如何有效地查找PySpark数据帧中每一列的Null和Nan值计数?

RF的George:
import numpy as np

df = spark.createDataFrame(
    [(1, 1, None), (1, 2, float(5)), (1, 3, np.nan), (1, 4, None), (1, 5, float(10)), (1, 6, float('nan')), (1, 6, float('nan'))],
    ('session', "timestamp1", "id2"))

预期产量

每列的nan / null计数的数据框

注意:我在堆栈溢出中发现的先前问题仅检查null而不是nan。这就是为什么我创建了一个新问题。

我知道我可以在spark中使用isull()函数在Spark列中查找Null值的数量,但是如何在Spark数据帧中查找Nan值?

user8183279:

您可以使用此处显示的方法并替换isNullisnan

from pyspark.sql.functions import isnan, when, count, col

df.select([count(when(isnan(c), c)).alias(c) for c in df.columns]).show()
+-------+----------+---+
|session|timestamp1|id2|
+-------+----------+---+
|      0|         0|  3|
+-------+----------+---+

要么

df.select([count(when(isnan(c) | col(c).isNull(), c)).alias(c) for c in df.columns]).show()
+-------+----------+---+
|session|timestamp1|id2|
+-------+----------+---+
|      0|         0|  5|
+-------+----------+---+

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何有效地在Pyspark的数据帧的每一列上为每个最小值或最大值获取一行?

如何在数据帧的每一列中有效地按后继者划分

有效地找到R中数据帧中不同行的列值计数

用不同的方法有效地填充每一列中的缺失值?

如何有效地合并 PySpark 数据帧?

如何有效地将一个Pandas数据框的每一列与另一数据框的每一列相乘?

通过分组有效地对数据帧的一列进行改组

如何有效地為工作表中的每一列創建 csv 文件?

如何有效地将python数据框中的每一行的特定值相乘

如何有效地获取具有NaN值的数据帧的相关矩阵(具有p值)?

如何通过遍历字典有效地替换数据帧中的值?

如何使用索引有效地获取张量中每一行的值?

如何有效地从熊猫数据框中减去每一行?

Pandas 基于现有数据帧列中的唯一值有效地创建新数据帧

有效地将一列中的值替换为另一列Pandas DataFrame

R:有效地在每一列选择不同的行

如何有效地将稀疏矩阵列添加到另一个稀疏矩阵中的每一列?

用 0 有效地替换 h2o 数据帧中的所有 NULL 值

如何有效地从同一表的不同列和行返回数据?

如何有效地选择Spark中包含特定值的数据框列?

如何在pyspark的高基数分类列中以低频率计数有效地分组级别?

当我必须比较两列的值时,如何有效地过滤数据帧?

如何通过未知列中的唯一值有效地更新 MySQL 行

如何有效地将数据向前/向后填充一半,以填补数据帧中的空白?

如何有效地从大型数据框字典中提取同一列?(性能警告)

如何在 Python 中有效地搜索和访问数据帧中的某些单元格?

如何有效地计算运行最大值的熊猫数据帧?

如何有效地对熊猫数据帧的行的值求和

如何更有效地更新数据帧值?