pandas中有没有比三元判断更简便的NaN替换为默认值的方法
pandas NaN替换的简洁实现方案
你要的无需重复引用变量a的写法有多个成熟实现,根据使用场景可以选择对应的方案:
标量场景(单个值的判断)
pandas 1.4.0及以上版本提供了原生的pd.coalesce()函数,会直接返回传入参数序列中第一个非空的值,和你写的三元表达式效果完全一致:var = pd.coalesce(a, b)如果使用的pandas版本较低,也可以借助numpy的where方法实现:
import numpy as np var = np.where(pd.isna(a), b, a)序列/表格场景(处理Series或DataFrame)
直接用pandas内置的fillna()方法即可,不需要额外写判断逻辑:# 替换单个Series中的NaN your_series = your_series.fillna(b) # 替换DataFrame指定列的NaN df['target_col'] = df['target_col'].fillna(b)
内容的提问来源于stack exchange,提问作者David Davó
相关产品推荐
相关产品推荐

