如何替换数据帧spark中的列值



所以我从这个列表中创建了学生数据图

example_scores=[('Ann', 92),('Bob',55) ]
scores_df = spark.createDataFrame(example_scores,schema=['Name','Score'])
scores_df.show()

我想用一个数字代替学生的分数。例如,如果他们的分数在51,60之间,我希望它在什么时候显示这些数据帧--鲍勃,6岁等等。我想使用if语句,但我不知道如何在数据帧中过滤这么多。我尝试过regexp_replace、translate,但不起作用。

您可以编写一个when表达式来创建一个新列

from pyspark.sql.functions import col, when
example_scores=[('Ann', 92),('Bob',55) ]
scores_df = spark.createDataFrame(example_scores,schema=['Name','Score'])
result_df = scores_df.withColumn("Grade", F.when((F.col("Score")>=51) & (F.col("Score")<=60),"6").otherwise("1")).select("Name","Grade")
result_df.show()

相关内容

  • 没有找到相关文章