gpt4 book ai didi

python - spark 中 null 和 NaN 之间的区别?如何处理?

转载 作者:太空狗 更新时间:2023-10-29 17:04:06 26 4
gpt4 key购买 nike

在我的DataFrame中,有列分别包含null和NaN的值,例如:

df = spark.createDataFrame([(1, float('nan')), (None, 1.0)], ("a", "b"))
df.show()

+----+---+
| a| b|
+----+---+
| 1|NaN|
|null|1.0|
+----+---+

它们之间有什么区别吗?如何处理它们?

最佳答案

null 值表示“无值”或“无”,它甚至不是空字符串或零。它可以用来表示不存在任何有用的东西。

NaN 代表“不是数字”,它通常是没有意义的数学运算的结果,例如0.0/0.0

处理 null 值的一种可能方法是使用以下方法删除它们:

df.na.drop()

或者您可以将它们更改为实际值(这里我使用 0):

df.na.fill(0)

另一种方法是选择特定列为null的行进行进一步处理:

df.where(col("a").isNull())
df.where(col("a").isNotNull())

也可以使用等效方法选择具有 NaN 的行:

from pyspark.sql.functions import isnan
df.where(isnan(col("a")))

关于python - spark 中 null 和 NaN 之间的区别?如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43882699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com