# Which modules to choose

**URL:** <https://discourse.julialang.org/t/which-modules-to-choose/42456>\
**Category:** New to Julia\
**Created:** [July 2, 2020, 10:32pm UTC](https://discourse.julialang.org/t/which-modules-to-choose/42456 "2020-07-02T22:32:11Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![gtraeger](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gtraeger/32/31043_2.png) [@gtraeger](https://discourse.julialang.org/u/gtraeger)\
**Post date:** [July 2, 2020, 10:32pm UTC](https://discourse.julialang.org/t/which-modules-to-choose/42456/1 "2020-07-02T22:32:11Z")

</div>

I want to program a simple retirement forecast cash flow model using time series, cash flows and plots. If I was programming in Python I would use Pandas for all of these functions. What modules would I use in Julia? Dataframes? Tables? Query? Plots?TimeSeries? DataFramesMeta? or something else?  
I would like to start out on the right track. Thanks for any help.

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [July 2, 2020, 11:10pm UTC](https://discourse.julialang.org/t/which-modules-to-choose/42456/2 "2020-07-02T23:10:35Z")

</div>

how does `Pandas` provide the functions? If you mean the `numpy` version of the basic operations, then you don’t need anything; if you’re talking about the `dataframe` format and manipulation then you need `DataFrames.jl` and maybe `Query` for easy manipulation of `dataframe`.

---

<div class="post-metadata">

**Author:** ![gtraeger](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gtraeger/32/31043_2.png) [@gtraeger](https://discourse.julialang.org/u/gtraeger)\
**Post date:** [July 3, 2020, 12:11am UTC](https://discourse.julialang.org/t/which-modules-to-choose/42456/3 "2020-07-03T00:11:32Z")

</div>

Will I be able to manipulate my data series by date. Say, summing up daily values by month or quarter with Query or DataFrames?

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [July 3, 2020, 7:08am UTC](https://discourse.julialang.org/t/which-modules-to-choose/42456/4 "2020-07-03T07:08:28Z")

</div>

On your three elements:

- cash flows - these are just vectors (or matrices for multiple individuals) I’d think, so they are built in to Base Julia, no need for packages; however this is slightly complicated by

- time series - I presume you want to index your cash flows by Date (that is, be able to do something like `cashflow[Date(2050, 1, 1)]`) - for this indeed the best solution is probably `TimeSeries.jl`, although an option could be using a `DataFrame` where one of your columns is `Date` - the best approach here will depend on your exact use case

- plots - this is hardest to say without more info, as there are a number of excellent plotting packages in the Julia ecosystem. `Plots.jl` is probably closest to a “standard” package, but there are also packages implementing grammar-of-graphics style plotting (`Gadfly, VegaLite`), wrappers around external librarie `GNUplot`, `PGFPlotsX`… all of them are pretty much fully featured and the best option for you depends on your background and what plots you’re looking to produce

On your second question yes you can summarize data by month etc using either TimeSeries.jl or DataFrames.jl with a `Date` column.

I’d say it’s best to just get started and come back with concrete issues/questions you run into!

---

<div class="post-metadata">

**Author:** ![gtraeger](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gtraeger/32/31043_2.png) [@gtraeger](https://discourse.julialang.org/u/gtraeger)\
**Post date:** [July 3, 2020, 2:21pm UTC](https://discourse.julialang.org/t/which-modules-to-choose/42456/5 "2020-07-03T14:21:19Z")

</div>

Thanks for you help. I just needed to get started on the right track. Programming is hard enough without going down some rabbit hole.
