# Concatenate two csv columns in julia

**URL:** <https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084>\
**Category:** General Usage\
**Tags:** question\
**Created:** [February 11, 2021, 7:34pm UTC](https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084 "2021-02-11T19:34:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![yogi1](https://avatars.discourse-cdn.com/v4/letter/y/439d5e/32.png) [@yogi1](https://discourse.julialang.org/u/yogi1)\
**Post date:** [February 11, 2021, 7:34pm UTC](https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084/1 "2021-02-11T19:34:54Z")

</div>

Hi all,

I am trying to replicate the excel function concat in julia.

I have two columns A and B. I am trying to concatenate the values in these columns and produce a single column with the values in columns A and columns B concatenated with “:” in between.

Column A and Column B are of the same size A (1000, 1) and B(1000, 1).

I have tried the below code which isn’t given me the required outcome.

using CSV  
using DataFrames

columnA = CSV.read(location, DataFrame; select = columnA) columnB = CSV.read(location, DataFrame; select = columnB])

y = DataFrame(x1 = columnA, x2 = columnB)

CONCAT = [“(r[:x1]):(r[:x2])” for r in eachrow(y)]

Any ideas how to change this to return a new column C with A and B concatented with “:” in between?

---

<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:** [February 11, 2021, 7:45pm UTC](https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084/2 "2021-02-11T19:45:38Z")

</div>

```julia
y = DataFrame(x1 = columnA, x2 = columnB)

```

This line shouldn’t work, since `columnA` and `columnB` are both DataFrames.

Where are you getting an error?

---

<div class="post-metadata">

**Author:** ![yogi1](https://avatars.discourse-cdn.com/v4/letter/y/439d5e/32.png) [@yogi1](https://discourse.julialang.org/u/yogi1)\
**Post date:** [February 11, 2021, 7:58pm UTC](https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084/3 "2021-02-11T19:58:47Z")

</div>

My issue is that the dataframe produced isnt what I expect, I would expect the new dataframe to be a (1000,2) but its actually coming out as (1, ).

Not sure what the best way to concatenate the two columns is?

I’ve also printed ColumnA and ColumnB to make sure the data has been extracted from the csv properly and it has.

I just cant seem to concatenate them into one dataframe

---

<div class="post-metadata">

**Author:** ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)\
**Post date:** [February 11, 2021, 9:05pm UTC](https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084/4 "2021-02-11T21:05:56Z")

</div>

If they are vectors, you can concatinate them using broadcasting:

```julia
C = string.(colA, ":", colB)

```

Or with DataFrames

```julia
df[!, "C"] = string.(df[!, "colA"], ":", df[!. "colB"])

```

---

<div class="post-metadata">

**Author:** ![yogi1](https://avatars.discourse-cdn.com/v4/letter/y/439d5e/32.png) [@yogi1](https://discourse.julialang.org/u/yogi1)\
**Post date:** [February 11, 2021, 9:58pm UTC](https://discourse.julialang.org/t/concatenate-two-csv-columns-in-julia/55084/5 "2021-02-11T21:58:08Z")

</div>

Thank you!
