pyspark如何更新Dataframe中所有列的所有空值?

ikfrs5lh  于 2021-05-18  发布在  Spark
关注(0)|答案(1)|浏览(558)

下面的df在某些列中有空值。
现在我需要用“na”更新/替换那些“null”值

+-------+------+-----+------+----+
|Product|Canada|China|Mexico| USA|
+-------+------+-----+------+----+
| Orange|  null| 4000|  null|4000|
|  Beans|  null| 1500|  2000|1600|
| Banana|  2000|  400|  null|1000|
|Carrots|  2000| 1200|  null|1500|
+-------+------+-----+------+----+

我找到了“fillna”方法来替换空值
但是,我需要更新/替换所有具有空值的列
所以像这样或更好的方式

replaced = df.fillna({str(col):'NA', col for col in df.columns})

感谢您的帮助,以获得正确的方法
谢谢

amrnrhlw

amrnrhlw1#

你需要使用 subset() 并传递列名,以便用空值填充 df = df.fillna(0, subset=['Canada', 'China', 'Mexico', 'USA']) 或者,如果你想用 fillna() 对于所有列,将它们以 dictionary ,也可以指定您的选择:) df = df.fillna({'Canada':'4', 'China': '5', 'Mexico' : '6', 'USA': '7}) 或者,您可以简单地使用下面的命令用空值填充所有列 df = df.fillna("a_value")

相关问题