我有一个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很新,所以我可能一直在使用错误的术语。
答案 0 :(得分:4)
以下内容似乎可读且快速。
for col in df.columns
col[col.==SQLite.NULL]=NA
end
值得注意的一个奇特的事情就是'特殊的' NA
在平等下的行为。因此,如果数据帧中已经存在NA
s(即操作不是幂等的),则上述解决方案可能会抛出异常。