我有以下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填充)。
答案 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