Python 如何删除pyspark dataframe中任何列的值小于1%le或大于99%le的行?

Python 如何删除pyspark dataframe中任何列的值小于1%le或大于99%le的行?,python,dataframe,pyspark,Python,Dataframe,Pyspark,我希望找到每列的1%le和99%le,并删除pyspark dataframe的相应行。 谢谢您可以使用percent_rank()函数,例如,如果您的DataFrame有两列CREDIT和DEBIT,您可以计算额外的列并使用它进行筛选。 您不能将仅数据帧筛选器中的行删除为新的行 from pyspark.sql.window import Window from pyspark.sql.functions import percent_rank df3=df.select('CREDIT','

我希望找到每列的1%le和99%le,并删除pyspark dataframe的相应行。 谢谢

您可以使用percent_rank()函数,例如,如果您的DataFrame有两列CREDIT和DEBIT,您可以计算额外的列并使用它进行筛选。 您不能将仅数据帧筛选器中的行删除为新的行

from pyspark.sql.window import Window
from pyspark.sql.functions import percent_rank
df3=df.select('CREDIT','DEBIT', percent_rank().over(Window.orderBy(df.CREDIT)).alias("credit_perc"),percent_rank().over(Window.orderBy(df.DEBIT)).alias("debit_perc"))\
  .where('debit_perc >=0.99 or debit_perc <=0.01 ').where('credit_perc >=0.99 or credit_perc <=0.91')
从pyspark.sql.window导入窗口
从pyspark.sql.functions导入百分比\u秩
df3=df.select('CREDIT','DEBIT',percent_rank().over(Window.orderBy(df.CREDIT)).alias(“CREDIT_perc”),percent_rank().over(Window.orderBy(df.DEBIT)).alias(“DEBIT_perc”))\
其中('debit_perc>=0.99或debit_perc=0.99或credit_perc