Julia 将DateTime列添加到现有数据帧

Julia 将DateTime列添加到现有数据帧,julia,Julia,我有以下数据帧: 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.

我有以下数据帧:

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的列(我只想分配该列,实际的DateTime将通过每个循环中的for I填充)。

没有方法
DateTime()
,请尝试

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

相反。

没有方法
DateTime()
,请尝试

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

While按要求提问是正确的

您可以将
for
循环替换为
映射
, 避免预先分配

df.C = map(eachrow(df) do r
    # Super complex function, simplified for example
    return now() + Day(r.A)
end
While是正确的问题

您可以将
for
循环替换为
映射
, 避免预先分配

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

如果您的MWE:Minimal:ei.g,。从不使用
MyStruct
,并且工作(显示错误本身)例如
df[!:C]
应该是
df[!,:C]
eachrow
应该是
eachrow(df)
i
应该是
r
。这是一个可运行的示例,因此可能包括返回sdatetimeforeachrow(r)=now()+Day(r.A)的
mysupercomplexfunction
我同意,这不是如何在这里表述问题的最佳示例。至少,我会编辑这个问题并删除MyStruct定义,。从不使用
MyStruct
,并且工作(显示错误本身)例如
df[!:C]
应该是
df[!,:C]
eachrow
应该是
eachrow(df)
i
应该是
r
。这是一个可运行的示例,因此可能包括返回sdatetimeforeachrow(r)=now()+Day(r.A)的
mysupercomplexfunction
我同意,这不是如何在这里表述问题的最佳示例。至少,我会编辑这个问题并删除MyStruct定义。