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 is
dfHT”中没有属性?它是
NoneType
,请检查它是否与您在原始问题中提到的数据框相同。它是我使用函数select创建的新数据框,用于过滤数据,因为初始数据都在同一行和三列中(H代表主队获胜时,D代表平局时,a代表客队获胜时)i、 e./ManCity/Liverpool/H/-/Liverpool/阿森纳/D/-/Arsenal/ManCity/A/-@ruben.lfdz请打印该变量并将输出粘贴到您的问题中。我不知道如何处理,但我通过添加显示(dfHT)对其进行了排序当我创建它的时候。谢谢你的时间