Iva*_*Lee 17 python null nan apache-spark pyspark
在我的DataFrame中,有些列分别包含null和NaN的值,例如:
df = spark.createDataFrame([(1, float('nan')), (None, 1.0)], ("a", "b"))
df.show()
+----+---+
| a| b|
+----+---+
| 1|NaN|
|null|1.0|
+----+---+
Run Code Online (Sandbox Code Playgroud)
那些之间有什么区别吗?他们怎么处理?
Sha*_*ica 26
null值表示"no value"或"nothing",它甚至不是空字符串或零.它可以用来表示没有任何有用的东西.
NaN代表"非数字",它通常是数学运算的结果,没有意义,例如0.0/0.0.
处理空值的一种可能方法是使用以下方法删除它们:
df.na.drop()
Run Code Online (Sandbox Code Playgroud)
或者您可以将它们更改为实际值(此处我使用0):
df.na.fill(0)
Run Code Online (Sandbox Code Playgroud)
另一种方法是选择特定列为null的行以进行进一步处理:
df.where(col("a").isNull())
df.where(col("a").isNotNull())
Run Code Online (Sandbox Code Playgroud)
也可以使用等效方法选择具有NaN的行:
from pyspark.sql.functions import isnan
df.where(isnan(col("a")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18458 次 |
| 最近记录: |