Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据pyspark中第一行的值填写后续空值_Python_Pyspark - Fatal编程技术网

Python 根据pyspark中第一行的值填写后续空值

Python 根据pyspark中第一行的值填写后续空值,python,pyspark,Python,Pyspark,我有一张如下所示的表格 G列(pesudo_付款)的第一行由C列(余额)、f列(付款)生成,公式为:G=C*(1+e)-f 但是,从第二行开始,列G基于列G的先前值,该值应为:g3=g2(1+e3)-f3 我试着“排名”第一,取rank=1来计算每组的第一行 from pyspark.sql.functions import rank window = Window.partitionBy(df['loan_id']).orderBy(df['date']) df_new=df.selec

我有一张如下所示的表格

G列(pesudo_付款)的第一行由C列(余额)、f列(付款)生成,公式为:G=C*(1+e)-f 但是,从第二行开始,列G基于列G的先前值,该值应为:g3=g2(1+e3)-f3

我试着“排名”第一,取rank=1来计算每组的第一行

from pyspark.sql.functions import rank

window = Window.partitionBy(df['loan_id']).orderBy(df['date'])

df_new=df.select('*', rank().over(window).alias('rank'))
df_new=df_new.withColumn('col_g',
        F.when(F.col('rank')=='1',F.col('balance')*(1+F.col('rate'))-
        F.col('payment'))
       )   
我尝试对秩不等于1的情况使用滞后函数,但不起作用,因为滞后后NA值仍然是NA


我应该如何在pyspark中编写此代码?

同一id在您的表中出现的次数为0-5次(总计=6次)。对于所有不同的ID,这个数字都是常量吗?如果是,那么我有一个解决方案给你。如果你能确认你的ID出现相同的次数,我可以给你一个解决方案。。