如何将SQL的NVL公式转换为Python或Pandas可执行代码
转换SQL NVL表达式为Pandas代码
原SQL表达式的逻辑是:当val_x不为空时取其值,否则计算-1 * val_y(空则取0) + val_z(空则取0) + val_h(空则取0)的结果。在Pandas中可以用fillna()方法实现NVL的功能,转换后的代码如下:
import pandas as pd # 假设你的DataFrame名为df df['result'] = df['val_x'].fillna( -1 * df['val_y'].fillna(0) + df['val_z'].fillna(0) + df['val_h'].fillna(0) )
逻辑对应说明:
- SQL中的
nvl(col, default)等价于Pandas中的df[col].fillna(default) - 外层的
nvl(val_x, ...)对应df['val_x'].fillna(...),括号内的算术计算逻辑与原SQL完全一致
内容的提问来源于stack exchange,提问作者Jayanth
相关产品推荐
相关产品推荐

