这是来自http://bluemountaincapital.github.io/Deedle/reference/deedle-seriesmodule.html的代码示例
let s1 = series [ 1 => 1.0; 2 => Double.NaN ]
s1 |> Series.dropMissing
缺失值将按预期删除。但是,如果我将其更改为
let s2 = series [ 1 => OptionalValue(1.0); 2 => OptionalValue.Missing ]
s2 |> Series.dropMissing
缺失值不会被丢弃。
我注意到 S2 是
Series<int,OptionalValue<float>>
键入而 s1 是
Series<int,float>
这种行为是设计使然吗?
我问这个问题的原因是我有这个答案的代码Deedle Moving window stats calcuation with a dynamic condition and boundary.atending
let lastKey = ref None
let r =
ts |> Series.aggregateInto
(WindowWhile(fun d1 d2 -> d1.AddMonths(1) >= d2)) (fun seg -> seg.Data.LastKey())
(fun ds ->
match lastKey.Value, ds.Data.LastKey() with
| Some lk, clk when lk = clk -> OptionalValue.Missing
| _, clk -> lastKey := Some clk; OptionalValue(ds.Data))
|> Series.dropMissing
Series.aggregateInto 可以以某种方式返回非 OptionalValue 系列,同时仍包含缺失值。如果我想在我创建的系列中使用 OptionalValue.Missing 以便它们可以被 Stats.mean 正确忽略,那么正确的方法是什么?
此外,将缺失值的系列/帧写入 csv Deedle 将在输出中放置空白。但是,如果 Series/Frame 包含 OptionalValue Deedle 会将字符串放入输出中。这是设计使然吗?