1

嗨,我正在使用 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”时更改填充?谢谢你。

4

1 回答 1

3

这是使用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也是无;它可以很容易地用 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
于 2020-09-27T11:58:34.237 回答