Transpose column to Row

Hi, I am not able to do easy transpose. I tried many snaps nut not able to solve this.

Please help to transpose column into row

Believe it or not, I had the SAME exact problem. I don’t believe there IS a snap to fix this, BUT, you can use the script snap. That is what I did. AND, though I didn’t write it to be neat. If you tell it you are using a python program, you can (1.6 KB)
use my script. I was a dreamer, and my dream didn’t work. You might want to change the line:




Indeed, there’s a Pivot snap, but that does the opposite of what you’re looking to do. Until such a snap exists, you can do this using a GroupByN snap and the expression language. If you add a GroupByN snap with a “Group Size” of zero, it will collect all of the incoming data into a single document. You can then follow that up with a Mapper that has this expression:

{}.extend($ => [x.Category, x.DataType]))

The extend() method will construct a new object containing the key/value pairs returned by the $ call.

Here’s a screenshot:

Here’s an export of this pipeline:

TransposeExample_2018_08_15.slp (6.8 KB)

1 Like

Thanks Stephen! :slight_smile:
I’ll try this approach as well.

Thanks Team!
It is working fine. :smile:

Hello everybody,

Can someone help me with exactly the opposite.
image to image

Also, in my challenge, the names of columns and number of columns will change(dynamic).

Thanks in advance,

If this wasn’t the case, I would suggest the Pivot snap. But, since it is, I think you’ll need to use an expression like the following:

$.entries().map(col => { Category: col[0], DataType: col[1] })

The entries() method will return a list of all the properties in the input document as pairs. The .map() method and callback then turn the pairs into their own objects. You can then follow up with a JSONSplitter to turn the array output by that expression into a series of documents.

Here’s an example pipeline that does that:

PivotProperties_2019_09_16.slp (6.9 KB)

1 Like