# Transforming DataFrame from column of vector

**URL:** https://discourse.julialang.org/t/transforming-dataframe-from-column-of-vector/91058
**Category:** General Usage
**Tags:** dataframes
**Created:** [November 30, 2022, 5:40pm UTC](https://discourse.julialang.org/t/transforming-dataframe-from-column-of-vector/91058 "2022-11-30T17:40:33Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![vzion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vzion/32/44768_2.png) [@vzion](https://discourse.julialang.org/u/vzion)
#### Post date: [November 30, 2022, 5:40pm UTC](https://discourse.julialang.org/t/transforming-dataframe-from-column-of-vector/91058/1 "2022-11-30T17:40:33Z")

</div>

Hello,

I would like to transform a DataFrame like this :

```julia
df = DataFrame(a=[1,2],b=["yes","no"],c=[["a","b","c"],["d"]])
┌───────┬────────┬─────────────────┐
│ a │ b │ c │
│ Int64 │ String │ Vector{String} │
├───────┼────────┼─────────────────┤
│ 1 │ yes │ ["a", "b", "c"] │
│ 2 │ no │ ["d"] │
└───────┴────────┴─────────────────┘

```

… into a DataFrame like the one below, where all values of columns **a** & **b** are repeated for every element in columns **c** arrays, in an efficient way (i have millions of rows and about a hundred elements in those **c** columns arrays) :

```julia
goal = DataFrame(a=[1,1,1,2],b=["yes","yes","yes","no"],c=["a","b","c","d"])
┌───────┬────────┬────────┐
│ a │ b │ c │
│ Int64 │ String │ String │
├───────┼────────┼────────┤
│ 1 │ yes │ a │
│ 1 │ yes │ b │
│ 1 │ yes │ c │
│ 2 │ no │ d │
└───────┴────────┴────────┘

```

If anyone also know the name of this kind of transformation, unsubpivoting maybe ? 😅  
Any help is appreciated !

---

<div class="post-metadata">

### Author: ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)
#### Post date: [November 30, 2022, 5:50pm UTC](https://discourse.julialang.org/t/transforming-dataframe-from-column-of-vector/91058/2 "2022-11-30T17:50:26Z")

</div>

I think you want `flatten`

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [November 30, 2022, 5:51pm UTC](https://discourse.julialang.org/t/transforming-dataframe-from-column-of-vector/91058/3 "2022-11-30T17:51:26Z")

</div>

`flatten(df, :c)`

---

<div class="post-metadata">

### Author: ![vzion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vzion/32/44768_2.png) [@vzion](https://discourse.julialang.org/u/vzion)
#### Post date: [December 1, 2022, 9:15am UTC](https://discourse.julialang.org/t/transforming-dataframe-from-column-of-vector/91058/4 "2022-12-01T09:15:38Z")

</div>

Perfect, thank you! Loving Julia with DataFrames a bit more every day 🙂
