# Eachcol get name property

**URL:** <https://discourse.julialang.org/t/eachcol-get-name-property/48695>\
**Category:** General Usage\
**Tags:** question\
**Created:** [October 20, 2020, 3:36pm UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695 "2020-10-20T15:36:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cristian\_Suciava](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cristian_suciava/32/14433_2.png) [@Cristian\_Suciava](https://discourse.julialang.org/u/Cristian_Suciava)\
**Post date:** [October 20, 2020, 3:36pm UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695/1 "2020-10-20T15:36:17Z")

</div>

How can I get the name property when using eachcol?

---

<div class="post-metadata">

**Author:** ![zweiglimmergneis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zweiglimmergneis/32/7892_2.png) [@zweiglimmergneis](https://discourse.julialang.org/u/zweiglimmergneis)\
**Post date:** [October 20, 2020, 8:45pm UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695/2 "2020-10-20T20:45:46Z")

</div>

You are talking about `DataFrames.eachcol` right? It seems that in a loop you just get an array.

```julia
julia> dfq = DataFrame(a = [3, 4], b = ["ali", "baba"])
2×2 DataFrame
│ Row │ a │ b │
│ │ Int64 │ String │
├─────┼───────┼────────┤
│ 1 │ 3 │ ali │
│ 2 │ 4 │ baba │

julia> for col in eachcol(dfq)
       println(col, ' ', typeof(col))
       end
[3, 4] Array{Int64,1}
["ali", "baba"] Array{String,1}

```

So what about:

```julia
julia> for name in names(dfq)
       col = dfq[name]
       println(name, ": ", col)
       end
a: [3, 4]
b: ["ali", "baba"]

```

---

<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:** [October 20, 2020, 8:49pm UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695/3 "2020-10-20T20:49:51Z")

</div>

You can also iterate through `pairs(eachcol(df))`

```julia
julia> for (name, col) in pairs(eachcol(df))
       @show name
       end

```

---

<div class="post-metadata">

**Author:** ![Cristian\_Suciava](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cristian_suciava/32/14433_2.png) [@Cristian\_Suciava](https://discourse.julialang.org/u/Cristian_Suciava)\
**Post date:** [October 21, 2020, 5:49am UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695/4 "2020-10-21T05:49:29Z")

</div>

> [@pdeffebach](#):
>
> `airs(eachcol(df`

I did something similar. I want to know how to access the name property.

---

<div class="post-metadata">

**Author:** ![Cristian\_Suciava](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cristian_suciava/32/14433_2.png) [@Cristian\_Suciava](https://discourse.julialang.org/u/Cristian_Suciava)\
**Post date:** [October 21, 2020, 5:50am UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695/5 "2020-10-21T05:50:42Z")

</div>

Ua! Hard to get it. Don’t know how it works, but yes, this works!

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [October 21, 2020, 6:41am UTC](https://discourse.julialang.org/t/eachcol-get-name-property/48695/6 "2020-10-21T06:41:20Z")

</div>

Here’s how it works:

```julia
julia> using DataFrames

julia> df = DataFrame(rand(10, 10));

julia> @which pairs(eachcol(df))
pairs(itr::DataFrames.DataFrameColumns) in DataFrames at /home/nils/.julia/packages/DataFrames/cdZCk/src/abstractdataframe/iteration.jl:200

```

so the `pairs` method being called is implemented [here](https://github.com/JuliaData/DataFrames.jl/blob/e07b08da25ebbebb83117e35a3df8ae20fe0b7ad/src/abstractdataframe/iteration.jl#L229):

```julia
Base.pairs(itr::DataFrameColumns) = Base.Iterators.Pairs(itr, keys(itr))

```

and the `DataFrameColumns` object comes from [here](https://github.com/JuliaData/DataFrames.jl/blob/master/src/abstractdataframe/iteration.jl#L169):

```julia
eachcol(df::AbstractDataFrame) = DataFrameColumns(df)

```
