1

我正在尝试使用给定的股票代码计算 Tableau 中股票的平均每日交易量。我已经将 Python 与 Tableau 连接起来;但是,计算失败,并且不断出现以下错误消息: 在此处输入图像描述

以下是我在 Tableau 中的 python 代码: 在此处输入图像描述

我在 Tableau 中创建了一个参数,让用户可以选择他们感兴趣的股票。参数的名称是 [Stock ticker]。谁能帮我解决这个问题?谢谢

4

1 回答 1

1

来自 TabPy Github文档:

“Tableau 期望 SCRIPT 返回一个单列,其中包含单行或与传递给 TabPy 的行数相同的行。”

发送到 Python 的 ATTR([Stock ticker) 参数实际上是在一个数组中发送的。如果您将 Tableau 中的数据想象为一个大型交叉表,那么该参数实际上会针对每一行重复。

我猜如果您将 [Number of Records] 拖到工作表中,您会看到 Tableau 包含 519733 条记录——错误中的第一个数字。您的 Python 脚本正在尝试返回 1612 条记录以匹配 Tableau 期望接收的 519733。

我同意@cmcau 的观点,即全部或部分都可以单独在 Tableau 中完成。代码可能看起来像这样 - 使用 LOD 函数:

{Fixed [Symbol]: SUM([Shares])}/85

注意上面的 [Symbol] 是一个字段而不是一个参数

本质上是做同样的事情 - 将每个符号的所有股票汇总,然后除以 85。

否则,在您的 Python 脚本中尝试将您的 arg 从参数(所有行重复的相同值)更改为字段(然后将特定于发送到 Python 的数组中的该行。)这样做会导致 Python返回为与发送到 Python 的数组匹配的值数组。不过要小心,因为编写 Python 代码时,在发送到 Python 的数组中读取的每一行都会导致查找整个 CSV。

于 2019-03-04T17:08:05.090 回答