Форматирование встроенных типов для красивой печати в Deedle

Я понимаю, что для того, чтобы красиво печатать такие вещи, как дискриминированные союзы в Deedle, вы должны переопределить ToString(), Но как насчет встроенных типов, как float?

В частности, я хочу, чтобы значения с плавающей точкой в ​​одном столбце отображались в процентах или, по крайней мере, не имели миллиона цифр после запятой.

Есть ли способ сделать это?

1 ответ

Решение

Для этого нет встроенной поддержки - это звучит как полезное дополнение, поэтому, если вы хотите поделиться этим с Deedle, пожалуйста, откройте вопрос, чтобы обсудить это! Мы будем рады принять запрос на добавление, который добавляет эту функцию.

Как обходной путь, я думаю, что ваш лучший шанс - преобразовать данные в кадре перед печатью. Нечто подобное должно сработать:

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) а остальное осталось без изменений.

Другие вопросы по тегам