# How to add metadata info to a DataFrame?

**URL:** https://discourse.julialang.org/t/how-to-add-metadata-info-to-a-dataframe/11168
**Category:** Data
**Tags:** dataframes, metadata
**Created:** [May 26, 2018, 3:21pm UTC](https://discourse.julialang.org/t/how-to-add-metadata-info-to-a-dataframe/11168 "2018-05-26T15:21:35Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [May 26, 2018, 3:48pm UTC](https://discourse.julialang.org/t/how-to-add-metadata-info-to-a-dataframe/11168/3 "2018-05-26T15:48:23Z")

</div>

I rather liked [this suggestion](https://discourse.julialang.org/t/a-type-for-metadata/10456/10) in that other thread:

> [@A type for metadata?](https://discourse.julialang.org/t/a-type-for-metadata/10456/10):
>
> It seems reasonable to associate some meta data to columns in a DataFrame. Having to track them in a separate Dict would possibly backfire because you would have to maintain the consistency between two separate data structures.
> 
> Consider the case of reading data from a relational database. Each column has metadata like data type, length, precision, allow nulls, etc. Often these are good information that is very handy when processing query results.
> 
> Something like this would be fairly easy to implement in DataFrames?
> 
> ```julia
> putmeta!(df, :column1, @NT(kind = :level))
> putmeta!(df, :column2, @NT(kind = :rate))
> getmeta(df, :column1) # returns @NT(kind = :level)
> colswith(df, t => t.kind == :level) # returns an iterator over :level columns
> 
> ```

Generally speaking, I think in julia it’s better to avoid accessing the internals of an object directly (eg `a.meta[:source] = "www.some.site"`) since a function can be generic and do similar things to objects that have different internal structure.

---

_[View the full topic](https://discourse.julialang.org/t/how-to-add-metadata-info-to-a-dataframe/11168)._
