Date 将包含缺少值的DataFrame字符串列转换为Julia中的日期
我试图在Julia中将DataFrame字符串列转换为日期格式,但如果该列包含缺少的值,则会产生错误:Date 将包含缺少值的DataFrame字符串列转换为Julia中的日期,date,dataframe,julia,missing-data,Date,Dataframe,Julia,Missing Data,我试图在Julia中将DataFrame字符串列转换为日期格式,但如果该列包含缺少的值,则会产生错误: ERROR: MethodError: no method matching Int64(::Missing) 我尝试运行的代码(适用于没有丢失数据的列)是: 我尝试过的其他代码行包括: df_pp[:tod] = Date.(passmissing(df_pp[:tod]), DateFormat("d/m/y")); df_pp[.!ismissing.(df_pp[:tod]), :t
ERROR: MethodError: no method matching Int64(::Missing)
我尝试运行的代码(适用于没有丢失数据的列)是:
我尝试过的其他代码行包括:
df_pp[:tod] = Date.(passmissing(df_pp[:tod]), DateFormat("d/m/y"));
df_pp[.!ismissing.(df_pp[:tod]), :tod] = Date.(df_pp[:tod], DateFormat("d/m/y"));
代码与名为
df_pp
的数据框中名为tod
的列相关。在尝试此操作之前,已加载数据帧
和日期
包。密码丢失方式为
df_pp.tod = passmissing(x->Date(x, DateFormat("d/m/y"))).(df_pp.tod)
这里发生的是:passmissing
接受一个函数,并返回一个处理missing
s的新函数(通过返回missing
)。在括号内,在x->Date(x,DateFormat(“d/m/y”)
中,我定义了一个新的匿名函数,它使用适当的DateFormat
调用Date
函数。
最后,我在df_pp.tod
上立即使用passmissing
返回的函数,使用
沿列广播。
如果将其拆分,则更容易看到语法:
myDate(x) = Date(x, DateFormat("d/m/y"))
Date_accepting_missing = passmissing(myDate)
df_pp[:tod] = Date_accepting_missing.(df_pp[:tod])
非常感谢。重写为:
df_pp[:tod]=passmissing(x->Date(x,DateFormat(“d/m/y”))(df_pp[:tod])代码>用于一致性,但它可以工作!希望很快我能更好地理解语法。我已经添加了一些解释-这会让它更清楚吗?
myDate(x) = Date(x, DateFormat("d/m/y"))
Date_accepting_missing = passmissing(myDate)
df_pp[:tod] = Date_accepting_missing.(df_pp[:tod])