Julia:如何在DataFrame中用NA替换SQLite.Null

时间:2015-10-15 06:11:48

标签: sqlite julia

我有一个SQLite数据库,我在Julia中读入了一个DataFrame。当缺少值时,它们的类型为SQLite.Null,这很难处理。我宁愿他们是新来的。有没有简单的方法来进行这种转换?我的kludgy方式如下:

using DataFrames, SQLite

df = DataFrame()
df[:x1] = [1, SQLite.NullType(), 3, 4]
df[:x2] = ["A", "B", SQLite.NullType(), "D"]

function repNull(x)
    if isa(x, SQLite.NullType)
        return(NA)
    else 
        return(x)
    end
end

df[:1] = map(repNull, df[:x1])
df[:2] = map(repNull, df[:x2])

是否有更优雅和/或更有效的方式?

我已经找到了这个问题,但我对Julia很新,所以我可能一直在使用错误的术语。

1 个答案:

答案 0 :(得分:4)

以下内容似乎可读且快速。

for col in df.columns
    col[col.==SQLite.NULL]=NA
end

值得注意的一个奇特的事情就是'特殊的' NA在平等下的行为。因此,如果数据帧中已经存在NA s(即操作不是幂等的),则上述解决方案可能会抛出异常。