Which modules to choose

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.

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.

1 Like

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

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!


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