用pyspark替换多个值

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

我需要将“action”列中的值替换为特定值。我的数据如下:

id           ActionName
1         First quartile
2         Midpoint
3         Third quartile
4         Complete

我想用数字替换这些值。预期产量:

id          ActionName
1           0
2           1
3           2
4           3

我尝试了以下方法:

df_new = df.withColumn("ActionName", when (col("ActionName").isin("First quartile"), 0), \
                              (col("ActionName").isin("Midpoint"), 1))

错误: TypeError: withColumn() takes 3 positional arguments but 4 were given

qgelzfjb

qgelzfjb1#

可以连接 whenwhen 声明。这与 else if ```
df_new = df.withColumn("ActionName", when(col("ActionName") == "First quartile", 0).when(col("ActionName") == "Midpoint", 1))

如果你想有更多的替代品,你可以连接更多 `when` 陈述,例如。 `when(..., 1).when(..., 2).when(..., 3)` 

相关问题