# Format Dataframe

**URL:** <https://discourse.julialang.org/t/format-dataframe/101591>\
**Category:** General Usage\
**Tags:** dataframes, formatting\
**Created:** [July 13, 2023, 9:23pm UTC](https://discourse.julialang.org/t/format-dataframe/101591 "2023-07-13T21:23:05Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![eweiss](https://avatars.discourse-cdn.com/v4/letter/e/b487fb/32.png) [@eweiss](https://discourse.julialang.org/u/eweiss)\
**Post date:** [July 13, 2023, 9:23pm UTC](https://discourse.julialang.org/t/format-dataframe/101591/1 "2023-07-13T21:23:05Z")

</div>

I have a dataframe with columns of numbers and strings. I would like to format it like an Excel spreadsheet so the numbers have dollar signs, commas, and 2 decimals.

> df = DataFrame(  
> StringColumn = [“A”, “B”, “C”, “D”, “E”],  
> FloatColumn = [112345.23, 1214.56, 7.899, 0.12, 3.45]  
> )

I’ve tried @sprintf(“%.2f”, df.FloatColumn), but it doesn’t like getting a vector.  
Trying to broadcase @sprintf.(“%.2f”, df.FloatColumn) is not valid either.

I know we don’t usually use Julia when a pretty format is needed, but in this case I need to.

Any suggestions? Use a call to C?

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [July 13, 2023, 9:41pm UTC](https://discourse.julialang.org/t/format-dataframe/101591/2 "2023-07-13T21:41:25Z")

</div>

Check out

[https://ronisbr.github.io/PrettyTables.jl/stable/](https://ronisbr.github.io/PrettyTables.jl/stable/)

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [July 13, 2023, 10:13pm UTC](https://discourse.julialang.org/t/format-dataframe/101591/3 "2023-07-13T22:13:20Z")

</div>

Another suggestion, using [Formatting.jl](https://github.com/JuliaIO/Formatting.jl):

```julia
using DataFrames, Formatting
df = DataFrame(x=["A","B","C","D","E"], y=[112345.23, 1214.56, 7.899, 0.12, 3.45])
DataFrame(x=df.x, y=sprintf1.("\$%'.2f", df.y))

 Row │ x y
     │ String String
─────┼─────────────────────
   1 │ A $112,345.23
   2 │ B $1,214.56
   3 │ C $7.90
   4 │ D $0.12
   5 │ E $3.45

```

---

<div class="post-metadata">

**Author:** ![eweiss](https://avatars.discourse-cdn.com/v4/letter/e/b487fb/32.png) [@eweiss](https://discourse.julialang.org/u/eweiss)\
**Post date:** [July 14, 2023, 12:50pm UTC](https://discourse.julialang.org/t/format-dataframe/101591/4 "2023-07-14T12:50:07Z")

</div>

This is also a good solution, but I can check only one reply as a solution. Thanks.
