# Deleting pyDataset column (deleteRow) causes columAdd malfunction

**URL:** <https://forum.inductiveautomation.com/t/deleting-pydataset-column-deleterow-causes-columadd-malfunction/93236>\
**Category:** Ignition\
**Tags:** scripting\
**Created:** [July 15, 2024, 3:05pm UTC](https://forum.inductiveautomation.com/t/deleting-pydataset-column-deleterow-causes-columadd-malfunction/93236 "2024-07-15T15:05:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![diamond](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@diamond](https://forum.inductiveautomation.com/u/diamond)\
**Post date:** [July 15, 2024, 3:05pm UTC](https://forum.inductiveautomation.com/t/deleting-pydataset-column-deleterow-causes-columadd-malfunction/93236/1 "2024-07-15T15:05:40Z")

</div>

Hello,

I have this code, which does the following:

1. It copies one pydataset column into a list.
2. Deletes the copied pydataset column.
3. It creates a new column with the same data.

```python
listData = []
for row in ds:
	listData.append(str(row["data"]))
	print len(listData), row["data"]
	
print "-----------------------------------------"
print "listData, len:", len(listData)
print "ds.getRowCount, len:", ds.getRowCount()
print "-----------------------------------------"
	
#Deleting column...
col_index = ds.getColumnIndex("data")	
ds = system.dataset.deleteRow(ds, col_index)
print "Column deleted!"	

#New column with same data...	
ds = system.dataset.addColumn(ds, listData, "newCol", str)
print "New column added!"

```

The **output** gives an error: `IndexError: Number of values (21) doesn't match number of rows (20) in dataset`, which is not correct.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/f/8f5f9f2299d21091c83400df3c402ed0a5914e24.png)

**If add the columns without removing the column, it works.**

This doesn't make sense to me, is this a bug or I am missing something?

Thanks!

---

<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:** [July 15, 2024, 3:10pm UTC](https://forum.inductiveautomation.com/t/deleting-pydataset-column-deleterow-causes-columadd-malfunction/93236/2 "2024-07-15T15:10:20Z")

</div>

> [@diamond](#):
>
> `ds = system.dataset.deleteRow(ds, col_index)`

That deletes a row, not a column. 🤷‍♂️

---

<div class="post-metadata">

**Author:** ![diamond](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@diamond](https://forum.inductiveautomation.com/u/diamond)\
**Post date:** [July 15, 2024, 3:18pm UTC](https://forum.inductiveautomation.com/t/deleting-pydataset-column-deleterow-causes-columadd-malfunction/93236/3 "2024-07-15T15:18:50Z")

</div>

Pfffff.... no comments 😂

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [July 15, 2024, 3:18pm UTC](https://forum.inductiveautomation.com/t/deleting-pydataset-column-deleterow-causes-columadd-malfunction/93236/4 "2024-07-15T15:18:58Z")

</div>

`system.dataset.deleteRow()` deletes a ... row. Not a column, so yes actually, when you try to add the column in this script the number of _rows_ in the dataset would be 20.

The function you would need to use to remove a column, is `system.dataset.filterColumns()`

```python
dataIndex = ds.getColumnIndex("data")
listData = ds.getColumnAsList(dataIndex)
filteredHeaders = ds.getColumnNames.pop(dataIndex)

#remove column
ds = system.dataset.filterColumns(ds,filteredHeaders)
ds = system.dataset.addColumn(ds, listData, "newCol", str)

```
