将一列DateTime添加到现有数据框

时间:2019-09-19 08:01:29

标签: julia

我有以下DataFrame:

using DataFrames, Dates

df = DataFrame( A=Int[], B=Int[] )
push!(df, [1, 10])
push!(df, [2, 20])
push!(df, [3, 30])

df[!, :C] .= DateTime()

for r in eachrow(df)
    # Super complex function, simplified for example
    r.C = now() + Day(r.A)
end

但是df[!, :C] .= DateTime()不会用DateTime创建一列(我只想分配该列,实际的DateTimes将在eachrow循环中通过for i填充)。

2 个答案:

答案 0 :(得分:2)

没有方法DateTime(),请尝试

df[!, :C] .= DateTime(0)

相反。

答案 1 :(得分:2)

@Daniel's answer正确地询问了问题。

您可以将for循环替换为map, 并避免必须预先分配。

df.C = map(eachrow(df) do r
    # Super complex function, simplified for example
    return now() + Day(r.A)
end