将列的“ NA”值替换为spark数据帧中的平均值

时间:2019-09-26 11:26:25

标签: python dataframe apache-spark-sql

我有一个具有名称和值的csv文件作为我的专栏。两者都是字符串格式。

dummy.csv:
Jordan  20|
  Mike   NA|
  James   30|
  Steve   NA|
   Stella   20|
   David   NA

Schema:

root
 name: string (nullable = true)
 value: string (nullable = true)

我正在尝试将“ NA”值替换为该特定列的平均值。我可以计算平均值,但是在用平均值替换“ NA”值时遇到问题

dummmyCol=['value']
dummydf.select([round(mean(col(c)),2).alias(c) for c in dummmyCol]).show()

+-----+
|value|
+-----+
|23.33|
+-----+

以下代码是我试图替换NA值的代码。我知道以下代码有缺陷。任何帮助将不胜感激。谢谢

dummydf.select([when(col(c1)=='NA',dummydf.select(round(mean(col(c1)),2))).alias(c1) for c1 in dummmyCol])

预期输出应为:

 Jordan  20|
  Mike   23.3|
  James   30|
  Steve   23.3|
   Stella   20|
   David   23.3

0 个答案:

没有答案