我知道为了在 Deedle 中漂亮地打印诸如有区别的联合之类的东西,您必须覆盖 ToString() 。但是内置类型呢,比如 float

具体来说,我希望将一列中的浮点数显示为百分比,或者至少不要超过小数点后一百万位。

有没有办法做到这一点?

最佳答案

这样做没有内置支持 - 这听起来像是一个有用的补充,所以如果你想把它贡献给 Deedle,请 open an issue to discuss this !我们很乐意接受添加此功能的拉取请求。

作为一种解决方法,我认为最好的机会是在打印之前转换框架中的数据。像这样的事情应该可以解决问题:

let df = frame [ "A" => series [ 1 => 0.001 ] ]

df |> Frame.map (fun r c (v:float) ->
  if c = "A" then box (sprintf "%f%%" (v*100.0)) else box v)

这将创建一个新框架,其中名为 float 的列的所有 A 值都使用格式化函数 sprintf "%f%%" (v*100.0) 进行转换,其余部分保持不变。

关于f# - 格式化内置类型以在 Deedle 中进行 pretty-print ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41216113/

10-13 02:21