在spark datafram中用平均值替换列的“NA”值

2024-05-14 16:31:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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

Tags: csv代码valuecolselectsteve平均值mike

热门问题