【问题标题】:Why does Frame.tryValues fail in this simple example?为什么 Frame.tryValues 在这个简单的例子中会失败?
【发布时间】: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 的第一次调用失败,而第二次却没有?

【问题讨论】:

    标签: f# deedle


    【解决方案1】:

    这原来是 Deedle 中的一个错误。我查看了它并submitted a PR with a fix

    【讨论】:

    • 我认为Deedle 是自切片面包以来最好的东西(在F# 宇宙中)。我很自豪能为它的改进做出一点贡献。非常感谢。
    • 您可能还想看看SO 42912346。我怀疑那里有错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多