# How to change row's values of a column matching pattern in Julia?

**URL:** <https://discourse.julialang.org/t/how-to-change-rows-values-of-a-column-matching-pattern-in-julia/56383>\
**Category:** New to Julia\
**Created:** [March 3, 2021, 7:39am UTC](https://discourse.julialang.org/t/how-to-change-rows-values-of-a-column-matching-pattern-in-julia/56383 "2021-03-03T07:39:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [March 3, 2021, 7:39am UTC](https://discourse.julialang.org/t/how-to-change-rows-values-of-a-column-matching-pattern-in-julia/56383/1 "2021-03-03T07:39:00Z")

</div>

Hello,  
I have a dataframe where some rows of a given column (‘group’) have a certain value (‘normal’). I would like to change such a value to something else. What would be the syntax? In other words, I am looking for Julia’s equivalent to R’s  
`df$group[df32$group == "Normal"] <- "Healthy"`  
And what would be the syntax for renaming the whole column?  
Thank you

---

<div class="post-metadata">

**Author:** ![Hewsond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hewsond/32/22472_2.png) [@Hewsond](https://discourse.julialang.org/u/Hewsond)\
**Post date:** [March 3, 2021, 8:12am UTC](https://discourse.julialang.org/t/how-to-change-rows-values-of-a-column-matching-pattern-in-julia/56383/2 "2021-03-03T08:12:45Z")

</div>

There are two easy ways to do what you want.

```julia
df = DataFrame(group=["foo", "notfoo", "foo"], data = 1:3)

```

Using replace

```julia
replace!(df.group, "foo" => "bar")

```

| | group | data |
| --- | --- | --- |
| | String | Int64 |
| 1 | bar | 1 |
| 2 | notfoo | 2 |
| 3 | bar | 3 |

Or by indexing as you do in your example

```julia
df[df.group .== "foo","group"] .= "bar"

```

Both of these will do the change inplace.

---

<div class="post-metadata">

**Author:** ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)\
**Post date:** [March 3, 2021, 8:58am UTC](https://discourse.julialang.org/t/how-to-change-rows-values-of-a-column-matching-pattern-in-julia/56383/3 "2021-03-03T08:58:46Z")

</div>

> [@Hewsond](#):
>
> `replace!(df.group, "foo" => "bar")`

Thank you. And if I wanted to change the whole column group to “unknown”, for instance?

---

<div class="post-metadata">

**Author:** ![Hewsond](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hewsond/32/22472_2.png) [@Hewsond](https://discourse.julialang.org/u/Hewsond)\
**Post date:** [March 3, 2021, 9:13am UTC](https://discourse.julialang.org/t/how-to-change-rows-values-of-a-column-matching-pattern-in-julia/56383/4 "2021-03-03T09:13:53Z")

</div>

In that case you can use the bang operator and broadcasting to assign a new value to the whole column

```julia
df[!,"group"] .= "unknown"

```

You can find some more details on the different ways of accessing the data in this blog [post](https://bkamins.github.io/julialang/2021/01/30/bang.html)
