Dataframe 如何替换Pyspark中数据帧的所有空值
我在pyspark中有一个超过300列的数据帧。在这些列中,有些列的值为null 例如:Dataframe 如何替换Pyspark中数据帧的所有空值,dataframe,null,pyspark,Dataframe,Null,Pyspark,我在pyspark中有一个超过300列的数据帧。在这些列中,有些列的值为null 例如: Column_1 column_2 null null null null 234 null 125 124 365 187 and so on >>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col']) >>> df.show() +----+
Column_1 column_2
null null
null null
234 null
125 124
365 187
and so on
>>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col'])
>>> df.show()
+----+
| col|
+----+
| 1|
| 2|
| 3|
|null|
+----+
>>> df.na.fill(0).show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
| 0|
+---+
当我想对列_1求和时,结果得到的是Null,而不是724
现在,我想用空空间替换数据帧所有列中的null。所以当我尝试对这些列求和时,我不会得到一个空值,但会得到一个数值
如何在pyspark中实现这一点,您可以使用
df.na.fill
将空值替换为零,例如:
Column_1 column_2
null null
null null
234 null
125 124
365 187
and so on
>>> df = spark.createDataFrame([(1,), (2,), (3,), (None,)], ['col'])
>>> df.show()
+----+
| col|
+----+
| 1|
| 2|
| 3|
|null|
+----+
>>> df.na.fill(0).show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
| 0|
+---+
可以使用fillna()func
使用
fillna
有3个选项
文件:
因此,您可以:
df.fillna(值)
df.fillna(将列的dict\u转换为值)
df.fillna(值,子集=列的列表)
fillna()
是na.fill()
的别名,因此它们是相同的。此函数是首选函数,因为您可以指定要使用的列,谢谢。这也是首选函数,因为您可以将其分配给同一个或另一个数据帧。