DolphinDB 提供了 4 种填充空值的方法:
-
bfill 和 bfill! :使用空值后的非空元素填充空值。
-
ffill 和 ffill! :使用空值前的非空元素填充空值。
-
lfill 和 lfill! :线性填充非空元素之间的空值。
-
nullFill 和
nullFill! :用指定值填充空值。
对于 bfill
和 ffill
,我们可以使用可选参数
limit 来指定需要填充的空值。
例1
ID=take(1,6) join take(2,6)
date=take(2018.01.01..2018.01.06, 12)
x=3.2 5.2 NULL 7.4 NULL NULL NULL NULL 8 NULL NULL 11
t=table(ID, date, x);
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
|
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
|
1 |
2018.01.06 |
|
2 |
2018.01.01 |
|
2 |
2018.01.02 |
|
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
|
2 |
2018.01.05 |
|
2 |
2018.01.06 |
11 |
update t set x=x.lfill() context by id;
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
6.3 |
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
|
1 |
2018.01.06 |
|
2 |
2018.01.01 |
|
2 |
2018.01.02 |
|
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
9 |
2 |
2018.01.05 |
10 |
2 |
2018.01.06 |
11 |
update t set x=x.bfill(1) context by id;
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
6.3 |
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
|
1 |
2018.01.06 |
|
2 |
2018.01.01 |
|
2 |
2018.01.02 |
8 |
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
9 |
2 |
2018.01.05 |
10 |
2 |
2018.01.06 |
11 |
update t set x=x.bfill() context by id;
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
6.3 |
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
|
1 |
2018.01.06 |
|
2 |
2018.01.01 |
8 |
2 |
2018.01.02 |
8 |
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
9 |
2 |
2018.01.05 |
10 |
2 |
2018.01.06 |
11 |
update t set x=x.ffill() context by id;
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
6.3 |
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
7.4 |
1 |
2018.01.06 |
7.4 |
2 |
2018.01.01 |
8 |
2 |
2018.01.02 |
8 |
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
9 |
2 |
2018.01.05 |
10 |
2 |
2018.01.06 |
11 |
例2
ID=take(1,6) join take(2,6)
date=take(2018.01.01..2018.01.06, 12)
x=3.2 5.2 NULL 7.4 NULL NULL NULL NULL 8 NULL NULL 11
t=table(ID, date, x);
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
|
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
|
1 |
2018.01.06 |
|
2 |
2018.01.01 |
|
2 |
2018.01.02 |
|
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
|
2 |
2018.01.05 |
|
2 |
2018.01.06 |
11 |
update t set x=x.nullFill(avg(x)) context by id;
t;
ID |
date |
x |
1 |
2018.01.01 |
3.2 |
1 |
2018.01.02 |
5.2 |
1 |
2018.01.03 |
5.266667 |
1 |
2018.01.04 |
7.4 |
1 |
2018.01.05 |
5.266667 |
1 |
2018.01.06 |
5.266667 |
2 |
2018.01.01 |
9.5 |
2 |
2018.01.02 |
9.5 |
2 |
2018.01.03 |
8 |
2 |
2018.01.04 |
9.5 |
2 |
2018.01.05 |
9.5 |
2 |
2018.01.06 |
11 |