我有一个pySpark Dataframe ,其中有我想要替换的空值I-但是,对于不同的组,要替换的值是不同的。
我的数据看起来像这样(道歉,我没有办法过去它作为文本):
对于组A,我想用-999替换空值;而对于组B,我想用0替换空值。
目前,我将数据拆分为多个部分,然后执行df = df.fillna(-999)
。
有没有更有效的方法?在伪代码中,我想沿着df = df.where(col('group') == A).fillna(lit(-999)).where(col('group') == B).fillna(lit(0))
这样的方法,但当然,这是行不通的。
2条答案
按热度按时间egdjgwm81#
您可以使用
when
:eimct9ow2#
另一个可能的选择是对每一列使用
coalesce
,并使用“filler”列保存替换值: