Из TabPy Github Документация:
"Tableau ожидает, что SCRIPT вернет один столбец, который имеет либо одну строку, либо такое же количество строк, как он был передан вTabPy. "
Параметр ATTR ([Stock ticker), который отправляется в Python, фактически отправляется в массиве.Если вы представляете свои данные в Таблице как большую кросс-таблицу, этот параметр фактически повторяется для каждой строки.
Я думаю, что если вы перетащите [Количество записей] на лист, вы увидите, что в Таблице содержится 519733 записи - первое число в ошибке.Ваш скрипт Python пытается вернуть 1612 записей в соответствии с 519733, который ожидает получить Tableau.
Я согласен с @cmcau, что все или некоторые из них могут быть выполнены только в Tableau.Код может выглядеть примерно так - с использованием функции LOD:
{Fixed [Symbol]: SUM([Shares])}/85
Обратите внимание, что [Symbol] выше - это поле, а не параметр
По сути, выполняется одно и то же - агрегирование всех долейза символ, затем разделив на 85.
В противном случае, в вашем скрипте Python попробуйте изменить аргумент из параметра (то же самое значение, повторяемое для всех строк) в поле (которое затем будет специфичным для этой строки вмассив, отправленный в Python.) Это приведет к тому, что возвращаемый Python будет массивом значений, которые соответствуют массиву, отправленному в Python.Будьте осторожны, потому что, поскольку ваш код Python написан, каждая строка, читаемая в массиве, отправляемом в Python, вызовет поиск всего вашего CSV.