ddb 内部的 winsorize 处理规则和 python 一致,关于 python 的 omit 控制处理的说明,可以参照:https://github.com/scipy/scipy/issues/8327
可以了解到 winsorize 并不是真正忽略了空值,而只是保持不变或者说最大值处理了。
import numpy as np
from scipy.stats.mstats import winsorize
a = np.array([0, 4, 5, 6, 7, 8, 9, np.nan, np.nan, 15])
print(winsorize(a, limits=[0.3, 0.3], nan_policy="omit"))
output:[ 6. 6. 6. 6. 7. 8. 9. nan nan 9.]
x = 0 4 5 6 7 8 9 NULL NULL 15
winsorize(x, 0.3,nanPolicy='omit')
//output: [6,6,6,6,7,8,9,,,9]