我在删除数据帧中的空值超过na_threshold的行时遇到了一些问题
na_threshold=2
df3=df3.dropna(thresh=len(df3.columns) - na_threshold)
当我运行时
df_null = df3.where(reduce(lambda x, y: x | y, (f.col(x).isNull() for x in df3.columns)))
df_null是一个具有1行的数据帧条目,其中只有一列具有空值
我试过增加na_threshold的值,但没有什么不同。
我已经意识到drop.na函数确实可以
发生的事情是,该文件最初是用Pandas读取的,我在将其他类似Null的值转换为Null之前放入了drop-na函数,因为Pandas使用nan、NaT,有时还使用"-">
for column in columns:
df3 = df3.withColumn(column,when((col(column)=='nan'),None).otherwise(F.col(column)))
df3 = df3.withColumn(column,when((col(column)=='NaT'),None).otherwise(F.col(column)))
df3 = df3.withColumn(column,when((col(column)=='-'),None).otherwise(F.col(column)))
na_threshold=2
df3=df3.dropna(thresh=len(df3.columns) - na_threshold)```