# Difference between Tables.jl and DataFrames.jl

**URL:** https://discourse.julialang.org/t/difference-between-tables-jl-and-dataframes-jl/29944
**Category:** Data
**Tags:** dataframes
**Created:** [October 15, 2019, 2:33pm UTC](https://discourse.julialang.org/t/difference-between-tables-jl-and-dataframes-jl/29944 "2019-10-15T14:33:45Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![4aHxKzD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/4ahxkzd/32/10833_2.png) [@4aHxKzD](https://discourse.julialang.org/u/4aHxKzD)
#### Post date: [October 15, 2019, 2:33pm UTC](https://discourse.julialang.org/t/difference-between-tables-jl-and-dataframes-jl/29944/1 "2019-10-15T14:33:45Z")

</div>

Hi.

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

---

<div class="post-metadata">

### Author: ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)
#### Post date: [October 15, 2019, 3:16pm UTC](https://discourse.julialang.org/t/difference-between-tables-jl-and-dataframes-jl/29944/2 "2019-10-15T15:16:17Z")

</div>

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).
