在Deedle

时间:2016-12-19 05:17:11

标签: f# deedle

据我所知,为了在Deedle中打出像歧视联盟这样的东西,你必须覆盖ToString()。但是内置类型呢,比如float

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

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:3)

没有内置支持这样做 - 这听起来像是一个有用的补充,所以如果你想将此贡献给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)进行转换,其余值保持不变。