# Add column to a dataset

**URL:** <https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [December 26, 2023, 12:36pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513 "2023-12-26T12:36:42Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![stefano.sforna](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@stefano.sforna](https://forum.inductiveautomation.com/u/stefano.sforna)\
**Post date:** [December 26, 2023, 12:36pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513/1 "2023-12-26T12:36:42Z")

</div>

Good afternoon,  
I need a column to a dataset.  
The type of column is java.lang.String  
When I use this function:

```auto
system.dataset.addColumn(dataset_dosati_generale, system.dataset.toPyDataSet(dataset_inerte_2_dosato) , "dosato", str)

```

I have this error:

```auto
Traceback (most recent call last):
  File "<event:mouseReleased>", line 52, in <module>
TypeError: can't convert [u'0'] to java.lang.String

```

I don't understand why

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 26, 2023, 12:56pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513/2 "2023-12-26T12:56:03Z")

</div>

Those brackets suggest you are supplying an extra layer of listification. Please show your code.

---

<div class="post-metadata">

**Author:** ![stefano.sforna](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@stefano.sforna](https://forum.inductiveautomation.com/u/stefano.sforna)\
**Post date:** [December 26, 2023, 1:44pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513/3 "2023-12-26T13:44:07Z")

</div>

this is the code:

```auto
dataset_inerte_2_dosato= system.dataset.filterColumns(dataset_dosati, ["qta_dosata"])

ds2 = system.dataset.addColumn(dataset_dosati_generale, system.dataset.toPyDataSet(dataset_inerte_2_dosato) , "dosato", str)

```

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [December 26, 2023, 3:11pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513/4 "2023-12-26T15:11:06Z")

</div>

> `dataset_inerte_2_dosato= system.dataset.filterColumns(dataset_dosati, ["qta_dosata"])`

Try with this instead:  
`dataset_inerte_2_dosato = dataset_dosati.getColumnAsList(dataset_dosati.getColumnIndex("qta_dosata"))`

---

<div class="post-metadata">

**Author:** ![stefano.sforna](https://avatars.discourse-cdn.com/v4/letter/s/91b2a8/32.png) [@stefano.sforna](https://forum.inductiveautomation.com/u/stefano.sforna)\
**Post date:** [December 27, 2023, 4:15pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513/5 "2023-12-27T16:15:49Z")

</div>

This function work well:

```auto
dataset_inerte_2_dosato= dataset_dosati.getColumnAsList(dataset_dosati.getColumnIndex("qta_dosata"))

```

After, with this function:

```auto
ds2 = system.dataset.addColumn( dataset_dosati_generale, dataset_inerte_2_dosato , "qta_dosata", str)

```

I have this error:

```auto
TypeError: addColumn(): 2nd arg can't be coerced to org.python.core.PySequence

```

Why???

Thank you

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [December 27, 2023, 4:38pm UTC](https://forum.inductiveautomation.com/t/add-column-to-a-dataset/83513/6 "2023-12-27T16:38:28Z")

</div>

well... Seems explicit enough. `addColumn` needs a `pySequence`, and what you're passing isn't one.

Why does this happen ? `getColumnAsList` returns a `java.util.ArrayList`. I agree, it's painful that `addColumn` can't take this type... but the solution is quite simple: just wrap your column in a `list()` call:

```python
ds2 = system.dataset.addColumn(dataset_dosati_generale, list(dataset_inerte_2_dosato), "qta_dosata", str)

```
