# Copycols in DataFrame and CSV package not working in julia 1.7.2

**URL:** <https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054>\
**Category:** New to Julia\
**Tags:** dataframes\
**Created:** [June 1, 2022, 12:03pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054 "2022-06-01T12:03:47Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![jcbritobr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcbritobr/32/219275_2.png) [@jcbritobr](https://discourse.julialang.org/u/jcbritobr)\
**Post date:** [June 1, 2022, 12:03pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/1 "2022-06-01T12:03:47Z")

</div>

Hello, Good Morning

I’m trying to make a immutable dataframe from a csv, but seems copycols = false parameter is not working on julia 1.7.2. Am I did in an obsolete way?

```julia
data_immutable = CSV.read("purchaseData.csv", copycols = false, DataFrame)

```

Code above needs to generate an immutable DataFrame

---

<div class="post-metadata">

**Author:** ![bkamins](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bkamins/32/208538_2.png) [@bkamins](https://discourse.julialang.org/u/bkamins)\
**Post date:** [June 1, 2022, 12:28pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/2 "2022-06-01T12:28:01Z")

</div>

@quinnj will know best but I think you need:

~~DataFrame(CSV.File(“purchaseData.csv”), copycols = false)~~

~~and note that this data frame will be mutable, only its columns will be immutable.  
If you need a fully immutable table just use `CSV.File("purchaseData.csv")`.~~

(this is outdated - please see @quinnj comment)

---

<div class="post-metadata">

**Author:** ![jcbritobr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcbritobr/32/219275_2.png) [@jcbritobr](https://discourse.julialang.org/u/jcbritobr)\
**Post date:** [June 1, 2022, 1:04pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/3 "2022-06-01T13:04:43Z")

</div>

Did this, but colums are mutable. According my book, this columns should be immutable

```julia
# %%
data_immutable = DataFrame(CSV.File("purchaseData.csv"), copycols = false)

# %%
try
    data_immutable[1, :Name] = "YARDEN"
catch
    @warn "Cannot: data_immutable is immutable" # should fail here
end

# %%
data_immutable[1, :Name]

```

---

<div class="post-metadata">

**Author:** ![quinnj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/quinnj/32/11_2.png) [@quinnj](https://discourse.julialang.org/u/quinnj)\
**Post date:** [June 1, 2022, 1:08pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/4 "2022-06-01T13:08:40Z")

</div>

There is no way to get immutable columns from CSV.jl when reading with `CSV.File`/`CSV.read`. In the single threaded case, normal `Vector` or `SentinelVector` are returned, in the multithreaded case `ChainedVector` of the former vector types are returned.

---

<div class="post-metadata">

**Author:** ![jcbritobr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcbritobr/32/219275_2.png) [@jcbritobr](https://discourse.julialang.org/u/jcbritobr)\
**Post date:** [June 1, 2022, 1:12pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/5 "2022-06-01T13:12:50Z")

</div>

I think this was changed in new versions of julia. This book is not so old. It has only one year. Then, are there no way to get a imuttable DataFrame?

---

<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:** [June 1, 2022, 1:18pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/6 "2022-06-01T13:18:35Z")

</div>

There has never been an immutable `DataFrame`. Can you share the resource you are using? Maybe there is a misunderstanding somewhere.

---

<div class="post-metadata">

**Author:** ![jcbritobr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcbritobr/32/219275_2.png) [@jcbritobr](https://discourse.julialang.org/u/jcbritobr)\
**Post date:** [June 1, 2022, 1:22pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/7 "2022-06-01T13:22:37Z")

</div>

![image](https://global.discourse-cdn.com/julialang/original/3X/6/d/6d2e614e3836764a5f2a6651e6f5132c71d7fc46.png)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/0/9/09f5628ab0a77ecf030d3f645d3eb4c1224e307f.png)

---

<div class="post-metadata">

**Author:** ![bkamins](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bkamins/32/208538_2.png) [@bkamins](https://discourse.julialang.org/u/bkamins)\
**Post date:** [June 1, 2022, 1:29pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/8 "2022-06-01T13:29:32Z")

</div>

> [@quinnj](#):
>
> There is no way to get immutable columns from CSV.jl

Ah - right. The immutability was dropped :).

---

<div class="post-metadata">

**Author:** ![quinnj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/quinnj/32/11_2.png) [@quinnj](https://discourse.julialang.org/u/quinnj)\
**Post date:** [June 1, 2022, 1:32pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/9 "2022-06-01T13:32:37Z")

</div>

Let’s see, I think it was back in the 0.7.X releases, immutable columns were returned, but that was several years ago at this point. This material must have been based on that.

---

<div class="post-metadata">

**Author:** ![quinnj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/quinnj/32/11_2.png) [@quinnj](https://discourse.julialang.org/u/quinnj)\
**Post date:** [June 1, 2022, 1:35pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/10 "2022-06-01T13:35:01Z")

</div>

If an immutable DataFrame is _really_ needed for some reason, you could convert the data into the Arrow.jl format; it returns immutable columns by default (the data format itself is immutable).

---

<div class="post-metadata">

**Author:** ![jcbritobr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcbritobr/32/219275_2.png) [@jcbritobr](https://discourse.julialang.org/u/jcbritobr)\
**Post date:** [June 1, 2022, 1:36pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/11 "2022-06-01T13:36:31Z")

</div>

I’ll will need to stop buying julia books. The amount of break changes between versions are constant. I had issues with obsolescense every year.

---

<div class="post-metadata">

**Author:** ![jcbritobr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcbritobr/32/219275_2.png) [@jcbritobr](https://discourse.julialang.org/u/jcbritobr)\
**Post date:** [June 1, 2022, 1:37pm UTC](https://discourse.julialang.org/t/copycols-in-dataframe-and-csv-package-not-working-in-julia-1-7-2/82054/12 "2022-06-01T13:37:17Z")

</div>

No need to be imuttable. I was only training using a book. No problem.
