【发布时间】:2014-08-16 04:06:04
【问题描述】:
这是来自http://bluemountaincapital.github.io/Deedle/reference/deedle-seriesmodule.html的代码示例
let s1 = series [ 1 => 1.0; 2 => Double.NaN ]
s1 |> Series.dropMissing
Missing 值将按预期删除。但是,如果我将其更改为
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 正确忽略。请问正确的做法是什么?
此外,将缺失值的系列/帧写入 csv Deedle 将在输出中放置空白。但是,如果 Series/Frame 包含 OptionalValue Deedle 会将字符串放入输出中。这是设计的吗?
【问题讨论】: