如何将缺失值转换为字符串?
How do I convert missing values into strings?
我有一个 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'
仍然有缺失值。
有没有办法将缺失值转化为空字符串?
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
相对)。有了这些知识,我猜想该库会提供一些处理缺失值的方法,所以我通过在 IDE 中执行 Frame.
并浏览可用函数列表及其文档来探索 API .
我有一个 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'
仍然有缺失值。
有没有办法将缺失值转化为空字符串?
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
相对)。有了这些知识,我猜想该库会提供一些处理缺失值的方法,所以我通过在 IDE 中执行 Frame.
并浏览可用函数列表及其文档来探索 API .