gpt4 book ai didi

f# - 如何将缺失值转换为字符串?

转载 作者:行者123 更新时间:2023-12-01 04:47:01 36 4
gpt4 key购买 nike

我有一个 Deedle DataFrame类型 Frame<int,string>包含一些缺失值。我想将缺失值转换为空字符串 "" .我尝试使用 valueOr功能,但这没有帮助。有办法做到这一点吗?

这是我的 DataFrame :

let s1 = Series.ofOptionalObservations [ 1 => Some("A"); 2 => None ]
let s2 = Series.ofOptionalObservations [ 1 => Some("B"); 2 => Some("C") ]
let df = Frame.ofColumns ["A", s1; "BC", s2]

正在打字 df;;FSI产生一些信息,包括

ColumnTypes = seq [System.String; System.String]; .所以 df 的值类型为 string而不是 string option .

这是函数 valueOr :

let valueOr (someDefault: 'a) (xo: 'a option) : 'a =
match xo with
| Some v -> v
| None -> someDefault

我定义了一个辅助函数emptyFoo作为:

let emptyFoo = valueOr ""

emptyFoo的签名是string option -> string .这意味着 emptyFoo编译器不应接受以下命令:

let df' = Frame.mapValues emptyFoo df

这是因为 df 的值类型为 string而不是 string option .

尽管如此,编译器并没有报错并且代码运行了。然而,df'仍然有缺失值。

有没有办法将缺失值转化为空字符串?

最佳答案

Frame.mapValues 的 Deedle 文档:

Builds a new data frame whose values are the results of applying the specified function on these values, but only for those columns which can be converted to the appropriate type for input to the mapping function

所以映射什么都不做,因为找到的是字符串,而不是字符串选项。

我注意到另一个函数似乎完全符合您的要求。

let df' = Frame.fillMissingWith "" df

我注意到的关键是 Deedle 将这些缺失值显示为 <missing> ,建议它使用自己的表示(例如,与 option 相反)。有了这些知识,我猜想这个库会提供一些处理缺失值的方法,所以我通过执行 Frame. 来探索 API。在我的 IDE 中浏览可用函数列表及其文档。

关于f# - 如何将缺失值转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254976/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com