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定义。