在 Deedle 中格式化用于漂亮打印的内置类型
Format built-in types for pretty printing in Deedle
我知道为了在 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)
这将创建一个新框架,其中名为 A
的列的所有 float
值都使用格式化函数 sprintf "%f%%" (v*100.0)
进行转换,其余保持不变。
我知道为了在 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)
这将创建一个新框架,其中名为 A
的列的所有 float
值都使用格式化函数 sprintf "%f%%" (v*100.0)
进行转换,其余保持不变。