📜  fillna spark 数据框 - Python (1)

📅  最后修改于: 2023-12-03 15:00:45.320000             🧑  作者: Mango

以'fillna spark 数据框 - Python '作主题

在Spark数据框中,fillna函数是用来填充null或NaN值的。这个函数会用给定的值来替换数据框中的所有null或NaN值。在本篇文章中,我们将介绍如何使用fillna函数来填充null或NaN值。

填充所有null或NaN值

以下是一个简单的示例,在数据框的所有null或NaN值中填充“unknown”:

from pyspark.sql.functions import when, col

df.fillna('unknown')

这里我们使用when和col函数来填充数据框中的null或NaN值。当列中的值为null或NaN时,将它们替换为“unknown”。

填充指定列的null或NaN值

我们可以使用fillna函数来填充指定列的null或NaN值。

df.fillna({'col1': 'unknown', 'col2': 0})

这里我们使用一个字典来指定要填充的列及其相应的值。上面的代码将col1中所有的null或NaN值替换为“unknown”,将col2中所有的null或NaN值替换为0。

填充前n行的null或NaN值

我们可以使用fillna函数来填充前n行的null或NaN值。

df.fillna('unknown', subset=['col1', 'col2'], limit=10)

这里,我们使用了subset和limit参数来指定要填充的列和填充的行数。上面的代码将前10行的col1和col2中的null或NaN值替换为“unknown”。

自定义填充逻辑

我们可以使用fillna函数来自定义填充逻辑。

def custom_fillna(col_name):
    return when(col(col_name).isNull(), 'unknown')\
                    .otherwise(col(col_name))

df.select([custom_fillna(c).alias(c) for c in df.columns])

这里,我们定义了一个名为custom_fillna的函数,该函数将null或NaN值替换为“unknown”。这个函数用when函数来实现替换逻辑,并使用otherwise函数来保留原始值。最后,我们将custom_fillna应用于数据框中的所有列。

以上是fillna函数在Spark数据框中的一些常见用法。有了这些技巧,您可以方便地处理数据框中的null或NaN值,从而更好地分析和理解数据。