我有以下数据框。
id,code
1,GSTR
2,GSTR
3,NA
4,NA
5,NA
这里GSTR可能会改变它可以是任何东西。我想将NA替换为同一列中存在的其他字符串。
在这种情况下,我想将NA替换为列中存在的其他字符串,即GSTR。我试图使用UDFS但是是一个未知的字符串。我无法理解。
注意:在此代码列中,只有两个字符串。一个将是“NA”,另一个可以是我们的情况GSTR是另一个字符串
预期输出
1,GSTR
2,GSTR
3,GSTR
4,GSTR
5,GSTR
答案 0 :(得分:1)
我们可以使用除NA之外的其他字符串并使用它,
>>> from pyspark.sql import functions as F
>>> df = spark.createDataFrame([(1,'GSTR'),(2,'GSTR'),(3,'NA'),(4,'NA'),(5,'NA')],['id','code'])
>>> df.show()
+---+----+
| id|code|
+---+----+
| 1|GSTR|
| 2|GSTR|
| 3| NA|
| 4| NA|
| 5| NA|
+---+----+
>>> rstr = df.where(df.code != 'NA')[['code']].first().code
>>> df.withColumn('code',F.lit(rstr)).show()
+---+----+
| id|code|
+---+----+
| 1|GSTR|
| 2|GSTR|
| 3|GSTR|
| 4|GSTR|
| 5|GSTR|
+---+----+
希望这有帮助。