将完整DT中的'NA'全部替换为0(Python数据表)

Replace all 'NA' with 0 in complete DT (Python Datatable)

您好,我正在使用 Python 数据表包,需要在加入两个 DT 后替换所有 'NA'。

示例数据:

DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9)
X = data.table(x=c("c","b"), v=8:7, foo=c(4,2))

X[DT, on="x"]

下面的代码将所有的 1 替换为 0

DT.replace(1, 0)

我应该如何调整它来替换 'NA'?或者是否可以选择在从 'NA' 加入到“0”时更改填充? 谢谢。

这是使用 python 的数据结构的代码:

from datatable import dt, f, by, join

DT = dt.Frame(x = ["b"]*3 + ["a"]*3 + ["c"]*3,
          y = [1, 3, 6] * 3,
          v = range(1, 10))

X = dt.Frame({"x":('c','b'),
              "v":(8,7),
              "foo":(4,2)})

X.key="x" # key the ``x`` column

merger = DT[:, :, join(X)]
merger

    x   y   v   v.0 foo
0   b   1   1   7   2
1   b   3   2   7   2
2   b   6   3   7   2
3   a   1   4   NA  NA
4   a   3   5   NA  NA
5   a   6   6   NA  NA
6   c   1   7   8   4
7   c   3   8   8   4
8   c   6   9   8   4

NA也是None;它可以很容易地替换为 0 :

merger.replace(None, 0)



x   y   v   v.0 foo
0   b   1   1   7   2
1   b   3   2   7   2
2   b   6   3   7   2
3   a   1   4   0   0
4   a   3   5   0   0
5   a   6   6   0   0
6   c   1   7   8   4
7   c   3   8   8   4
8   c   6   9   8   4