- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!