pyspark df.带三个条件的柱
我有两列表示pyspark df.带三个条件的柱,pyspark,databricks,Pyspark,Databricks,我有两列表示'TeamName'和'MatchResult',例如: ManCity L Liverpool D Arsenal W 我正在尝试创建第三列,根据不同足球队的比赛结果来表示“分数”。所以赢3分,平1分,输0分 我尝试了使用when和if的函数。with column,但无法正确使用语法 提前非常感谢您抽出时间 ManCity L 0 Liverpool D 1 Arsenal W 3 您可以使用: from pyspark.sql.
'TeamName'
和'MatchResult'
,例如:
ManCity L
Liverpool D
Arsenal W
我正在尝试创建第三列,根据不同足球队的比赛结果来表示“分数”
。所以赢3分,平1分,输0分
我尝试了使用when和if的函数。with column
,但无法正确使用语法
提前非常感谢您抽出时间
ManCity L 0
Liverpool D 1
Arsenal W 3
您可以使用:
from pyspark.sql.functions import when, col
df = df.withColumn("points", when(col("MatchResult") == "W", 3).when(col("MatchResult") == "D", 1).otherwise(0))
首先,感谢您的回答,我导入了函数(来自pyspark.sql.functions import col,expr,when)。我可能错过了一些其他的东西,我试过了,这就是接下来要做的。AttributeError:“非类型”对象在---->1 dfHTPoints=dfHT中没有属性“withColumn”AttributeError回溯(最近一次调用)。withColumn(“HTP”),当(col(“HTR”)=“H”,3)。当(col(“HTR”)=“D”,1)。否则(0))AttributeError:“非类型”对象在列“What is isdfHT”中没有属性?它是NoneType
,请检查它是否与您在原始问题中提到的数据框相同。它是我使用函数select创建的新数据框,用于过滤数据,因为初始数据都在同一行和三列中(H代表主队获胜时,D代表平局时,a代表客队获胜时)i、 e./ManCity/Liverpool/H/-/Liverpool/阿森纳/D/-/Arsenal/ManCity/A/-@ruben.lfdz请打印该变量并将输出粘贴到您的问题中。我不知道如何处理,但我通过添加显示(dfHT)对其进行了排序当我创建它的时候。谢谢你的时间