Fea*_*ter 5 date missing-data dataframe julia
我正在尝试将 DataFrame 字符串列转换为 Julia 中的日期格式,但如果该列包含缺失值,则会产生错误:
ERROR: MethodError: no method matching Int64(::Missing)
Run Code Online (Sandbox Code Playgroud)
我尝试运行的代码(适用于没有丢失数据的列)是:
df_pp[:tod] = Date.(df_pp[:tod], DateFormat("d/m/y"));
Run Code Online (Sandbox Code Playgroud)
我尝试过的其他代码行是:
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"));
Run Code Online (Sandbox Code Playgroud)
tod
该代码与名为 的数据框中命名的列相关df_pp
。DataFrames
在尝试此操作之前, &包均已Dates
加载。
方法passmissing
是
df_pp.tod = passmissing(x->Date(x, DateFormat("d/m/y"))).(df_pp.tod)
Run Code Online (Sandbox Code Playgroud)
这里发生的事情是这样的:passmissing
接受一个函数,并返回一个处理missing
s 的新函数(通过返回missing
)。在括号内,x->Date(x, DateFormat("d/m/y"))
我定义了一个新的匿名函数,该函数使用Date
适当的DateFormat
. passmissing
最后,我使用立即返回的函数df_pp.tod
,使用 a.
沿列广播。如果我把它分开,就更容易看到语法:
myDate(x) = Date(x, DateFormat("d/m/y"))
Date_accepting_missing = passmissing(myDate)
df_pp[:tod] = Date_accepting_missing.(df_pp[:tod])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
849 次 |
最近记录: |