我有一个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]
键入FSI
df;;
得到一些信息,包括
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'
仍然存在缺失值。
有没有办法将缺失值转换为空字符串?
谢谢。我使用'fillMissingWith'作为'float'值,一些精神障碍阻止我考虑将它用于字符串。 – Soldalma