在Deedle(F#)中只修改一个级数值的有效方法

在Deedle(F#)中只修改一个级数值的有效方法,f#,series,deedle,F#,Series,Deedle,系列在Deedle中是不可变的 如果我有一个序列,并且我有一个函数返回一个(新)序列,该序列对于某些(k,v)对只有一个不同的值,那么我如何有效地做到这一点 如果我做了类似的事情 Series.map (fun k v -> if (k=k0) && (v=v0) then myfun (k v) else v) 它会扫描所有的钥匙吗?我在库中没有看到任何本机函数可以这样做,有吗

系列在Deedle中是不可变的

如果我有一个
序列
,并且我有一个函数返回一个(新)序列,该序列对于某些(k,v)对只有一个不同的值,那么我如何有效地做到这一点

如果我做了类似的事情

Series.map (fun k v -> if (k=k0) && (v=v0) then myfun (k v)
                                           else v)
它会扫描所有的钥匙吗?我在库中没有看到任何本机函数可以这样做,有吗

<也许我应该考虑另一个数据结构?
假设键也已排序。(日期或数字)

我认为这可能是实现这一点的方法-但是,修改一个元素不是惯用的Deedle代码中经常做的事情-您想要修改单个值的原因是什么?我正在按时间序列顺序运行一个算法。我需要用每个日期的值构造新的序列。从概念上讲,这是数据框架上的一个折叠。你能给出一些最简单的具体例子吗?(不一定是您的实际算法-任何说明访问模式的方法都可以!)我认为这可能是实现这一点的方法-但是,在惯用的Deedle代码中,修改一个元素并不是经常做的事情-您想要修改单个值的原因是什么?我正在按时间序列顺序运行一个算法。我需要用每个日期的值构造新的序列。从概念上讲,这是数据框架上的一个折叠。你能给出一些最简单的具体例子吗?(不必是您的实际算法-任何说明访问模式的方法都可以!)