【发布时间】:2017-08-13 18:06:00
【问题描述】:
Frame.tryValues 的帮助如下:
“给定一个包含tryval<'T> 类型列的数据框,返回一个包含'T 类型基础值的新数据框。”
我将此解释为函数将从值中剥离类型 tryval 并返回那些剥离的值。也许我没看懂文字,因为在以下情况下函数失败:
let dates =
[ DateTime(2013,1,1);
DateTime(2013,1,2);
DateTime(2013,1,3) ]
let values = [ 10.0; 20.0; 30.0 ]
let first = Series(dates, values)
let frame = Frame(["first"], [first])
let f (dt: DateTime) (row: ObjectSeries<string>) = row.Get("first") :?> double
let s =
frame
|> Frame.tryMapRows f
// frame1's second column has tryvalues
let frame1 = Frame(["first"; "second"], [first; s])
// frame2 has no tryvalues
let frame2 = Frame(["first"; "second"], [first; first])
let frame3 =
frame1
|> Frame.tryValues
// fails
let frame3 =
frame2
|> Frame.tryValues
// Ok, works fine
为什么上面对Frame.tryValues 的第一次调用失败,而第二次却没有?
【问题讨论】: