Difference between Tables.jl and DataFrames.jl


Is anyone here kind enough to educate me about what is the difference between Tables.jl and DataFrames.jl packages?

1 Like

Tables.jl is an interface, DataFrames.jl is a specific implementation of said interface.

More specifically, Tables.jl, apart from specifying an interface, provides a bunch of convenient functions for dealing with tables. Such functions could be useful for DataFrames, but also for other types of tables, both row and column oriented.

DataFrames.jl is a specific, column-oriented implementation of a table, which includes lots of convenience functions for dealing with DataFrames specifically (i.e. not necessarily generalized tables) as well as the core relational algebra functions like join and by (which are not implemented or specified by Tables.jl).