Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.
Free Trial

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Executing an Iterative Function in Python

aaronindm
8 - Asteroid

I am trying to pass parameter to, and execute, a function within the Python tool.  It is actually a function within a function.  this is a specialized IRR calculation (it differs from the built in Alteryx IRR calculation).  The code was "converted" from a VB custom Excel function (works fine there)

 

What I don't know is how to properly execute the function.  Seems like Alteryx makes an attempt before erroring out

 

A simplified version is attached

5 REPLIES 5
PhilipMannering
16 - Nebula
16 - Nebula

HI @aaronindm,

 

I'd be lying if I said that I understand what you're doing. But I have got it to run without error. The issue, I think, is that data is read in and out of Atleryx as Pandas DataFrames, therefore you need to a few extra steps to extract the data from the DataFrame before you can use it in your function.

 

Take a look at the attached.

aaronindm
8 - Asteroid

@PhilipMannering Thanks you for the reply but I am not seeing the additional code you added, can you call that out specifically for me?  The Python tool code from the one I uploaded looks to be the same as the one you uploaded.

 

There is likely some nuance that I am missing

PhilipMannering
16 - Nebula
16 - Nebula

Hmm.... so this puzzled me a bit, but I think what has happened is that both workflows are pointing to the same folder for the the .ipynb file (the jupyter notebook). So updating the python tool in one "Becker_IRR_4.yxmd" will also change the python tool in "python tool troubleshooting.yxmd". So it looks like both are the same.

 

But what I changed was the comments, the location of data after Alteryx.read() and adding the result to a DataFrame before writing out in the final cell,

PhilipMannering_0-1617034552823.png

Now you get an output (0.003044), whereas before you got an error.

 

PhilipMannering
16 - Nebula
16 - Nebula

Hey @aaronindm ,

 

See the Python code for multiple rows attached.

aaronindm
8 - Asteroid

Wow thank you so much for this - works like a charm!

Labels
Top Solution Authors