如何用同一列中的其他字符串替换列中的字符串
How to replace a string in a column with other string from the same column
我有以下数据框。
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
我们可以使用 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|
+---+----+
希望对您有所帮助。
我有以下数据框。
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
我们可以使用 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|
+---+----+
希望对您有所帮助。