Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# Frame.mapCols的示例是什么?_F#_Deedle - Fatal编程技术网

F# Frame.mapCols的示例是什么?

F# Frame.mapCols的示例是什么?,f#,deedle,F#,Deedle,我试图为Deedle中的所有方法创建示例,但成功与否参差不齐。我能够为Frame.filterColValues提供示例,但不能为Frame.mapCols提供示例。从Tomas Petricek的众多writeups中,我定义了一个数据帧,如下所示: open Deedle let dates = [ DateTime(2013,1,1); DateTime(2013,1,4); DateTime(2013,1,8) ] let values = [ 10.0;

我试图为Deedle中的所有方法创建示例,但成功与否参差不齐。我能够为Frame.filterColValues提供示例,但不能为Frame.mapCols提供示例。从Tomas Petricek的众多writeups中,我定义了一个数据帧,如下所示:

open Deedle

let dates  = 
  [ DateTime(2013,1,1); 
    DateTime(2013,1,4); 
    DateTime(2013,1,8) ]

let values = [ 10.0; 20.0; 30.0 ]

let first = Series(dates, values)

/// Generate date range from 'first' with 'count' days
let dateRange (first:System.DateTime) count =
    seq {for i in 0..(count - 1) -> first.AddDays(float i)}

/// Generate 'count' number of random doubles
let rand count =
    let rnd = System.Random()
    seq {for i in 0..(count - 1) -> rnd.NextDouble()}

// A series with values for 10 days 
let second = Series(dateRange (DateTime(2013,1,1)) 10, rand 10)

// df1 has two columns
let df1 = Frame(["first"; "second"], [first; second])
接下来,我能够为Frame.filterColValues提供一个示例:

我做错了什么?有人能举个例子吗?或者,更好的是,指向一个有Deedle方法示例的地方?

Frame.mapCols函数允许您将一个列系列转换为另一个列系列

最基本的示例只是返回未更改的列序列:

df1 
|> Frame.mapCols (fun k col -> col)
正如Foggy Finder在一篇评论中提到的那样,您可以使用以下方法填充列中所有缺失的值-lambda的主体必须返回一个系列:

df1 
|> Frame.mapCols (fun k v -> Series.fillMissingWith 0.0 v)
如果需要,可以返回仅包含单个元素的序列。这会将帧转换为包含第一行数据和原始列数的一行帧:

df1 
|> Frame.mapCols (fun k col -> series [ 0 => col.GetAtAs<float>(0) ])
使用Frame.mapCols函数可以将一个列系列转换为另一个列系列

最基本的示例只是返回未更改的列序列:

df1 
|> Frame.mapCols (fun k col -> col)
正如Foggy Finder在一篇评论中提到的那样,您可以使用以下方法填充列中所有缺失的值-lambda的主体必须返回一个系列:

df1 
|> Frame.mapCols (fun k v -> Series.fillMissingWith 0.0 v)
如果需要,可以返回仅包含单个元素的序列。这会将帧转换为包含第一行数据和原始列数的一行帧:

df1 
|> Frame.mapCols (fun k col -> series [ 0 => col.GetAtAs<float>(0) ])

您只需阅读函数说明;例如:让df2=df1 |>Frame.mapColsfun u->Series.fillmissinginide Direction.backward只是好奇-你想用这个函数得到什么?@FoggyFinder-是函数描述让我困惑。它表示构建一个新的数据框,其列是在输入数据框的列上应用指定函数的结果。这表明函数只有一个参数。下一句将使用列键和表示列数据的对象系列调用函数。这表明它有两个论点。你自己的例子有uu作为它唯一的论点,我承认我不理解它为什么有效,我检查过它是否有效。Tomas Petricek提供的示例有两个参数;例如:让df2=df1 |>Frame.mapColsfun u->Series.fillmissinginide Direction.backward只是好奇-你想用这个函数得到什么?@FoggyFinder-是函数描述让我困惑。它表示构建一个新的数据框,其列是在输入数据框的列上应用指定函数的结果。这表明函数只有一个参数。下一句将使用列键和表示列数据的对象系列调用函数。这表明它有两个论点。你自己的例子有uu作为它唯一的论点,我承认我不理解它为什么有效,我检查过它是否有效。Tomas Petricek提供的示例有两个论点。谢谢。我被上面的函数描述搞糊涂了,也被提到ObjectSeries和ISeries的函数签名搞糊涂了,这两个概念我不熟悉。谢谢。我被函数描述搞糊涂了,见我上面的评论,但也被提到ObjectSeries和ISeries的函数签名搞糊涂了,这两个概念我并不熟悉。