riptable icon indicating copy to clipboard operation
riptable copied to clipboard

Dataset multi-col assignment from list of arrays broken

Open jack-pappas opened this issue 4 years ago • 0 comments

Python version: 3.9.6 riptable version: 1.1.0 riptide_cpp version: 1.7.0 platform: windows x64

I was putting together a small code example this morning and used a syntax I thought should work, but I got an error from rt.Dataset. The issue arises when attempting to assign multiple columns from a list of arrays on the r.h.s. to multiple columns in a rt.Dataset -- the assignments can be done by looping and iteratively assigning one columns at a time, but the single-statment multiple-assignment form doesn't work:

>>> import riptable as rt
>>> dset = rt.Dataset()
>>> cols = [rt.arange(10), rt.arange(10)+3, rt.arange(10)-7]
>>> dset[['abc', 'def', 'ghi']] = cols
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Miniconda3\envs\mitre-dev39\lib\site-packages\riptable\rt_dataset.py", line 1027, in __setitem__
    raise ValueError(f'Must have same-shape Dataset when setting {nrows}x{ncols} sub-Dataset. Type: {type(value)}')
ValueError: Must have same-shape Dataset when setting 0x3 sub-Dataset. Type: <class 'list'>
>>> dset['idx'] = rt.arange(10)
>>> dset[['abc', 'def', 'ghi']] = cols
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Miniconda3\envs\mitre-dev39\lib\site-packages\riptable\rt_dataset.py", line 1027, in __setitem__
    raise ValueError(f'Must have same-shape Dataset when setting {nrows}x{ncols} sub-Dataset. Type: {type(value)}')
ValueError: Must have same-shape Dataset when setting 10x3 sub-Dataset. Type: <class 'list'>

jack-pappas avatar Aug 12 '21 13:08 jack-pappas