如何替换PySpark中另一列中缺少的值?

如何替换PySpark中另一列中缺少的值?,pyspark,coalesce,Pyspark,Coalesce,我想用t5中的值来替换t4中缺少的一些值。搜索代码,但对我不起作用 当前: 目标: df是一个数据帧。代码: pdf = df.toPandas() from pyspark.sql.functions import coalesce pdf.withColumn("t4", coalesce(pdf.t4, pdf.t5))  错误:“DataFrame”对象没有属性“withColumn” 另外,以前尝试过以下代码,但都不起作用 new_pdf=pdf['t4'].fi

我想用t5中的值来替换t4中缺少的一些值。搜索代码,但对我不起作用

  • 当前:

  • 目标:

df是一个数据帧。代码:

pdf = df.toPandas()  

from pyspark.sql.functions import coalesce
pdf.withColumn("t4", coalesce(pdf.t4, pdf.t5))
 错误:“DataFrame”对象没有属性“withColumn”

另外,以前尝试过以下代码,但都不起作用

new_pdf=pdf['t4'].fillna(method='bfill', axis="columns")

错误:对象类型没有轴命名列,就像错误指示的。withColumn()不是数据帧的方法,而是spark数据帧。请注意,当使用.toPandas()时,您的pdf将成为熊猫数据帧,因此如果要使用.withColumn()请避免转换

更新:
如果pdf是熊猫数据帧,则可以执行以下操作:

pdf['t4']=pdf['t4'].fillna(pdf['t5'])

看起来pdf是熊猫数据框,而不是spark数据框请向我们展示您的数据框的几行,以及应用您的逻辑后这些行的外观。您将其转换为熊猫数据帧有什么原因吗?谢谢大家。已添加图像,不确定是否可以看到。谢谢。我确实试过先用熊猫。但它不起作用。你也知道原因吗?代码:new_pdf=pdf['t4'].fillna(method='ffill',axis=“columns”)错误:如果pdf是熊猫数据框,则对象类型没有轴命名列,您可以执行:pdf['t4']=pdf['t4'].fillna(pdf['t5'])