python - Tableau Python脚本仅处理一行数据......它应该是1000's

标签 python tableau-api

我添加了一个 Python 脚本作为 Tableau 计算字段的一部分,Tableau 似乎一次将一行数据传递到计算字段,而不是整个列表(对于 _arg1_arg2)。我已经设置了 TabPy 并与本地主机建立了连接等。我可以运行“hello world!”输入脚本没有错误。我试图遵循一些简单的 DBSCAN tutorial(s)我在网上找到了自己的数据集。我在 Tableau 中有一个二维散点图,我尝试使用图中的 2 个轴对数据点进行聚类。这是我现在使用的计算字段的代码。

SCRIPT_STR(
"from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
import numpy as np
import pandas as pd
import string

def int_to_string(val):
    if val == -2:
        return 'NaN'
    elif val == -1:
        return 'Outlier'
    else:
        return string.ascii_lowercase[val]

eps=1
min_samples=10
ids = range(len(_arg1))
X = np.column_stack([_arg1, _arg2])
X = pd.DataFrame(X, index=ids, columns=['x', 'y'])
X.dropna(how='any', inplace=True)
X_scale = StandardScaler().fit_transform(X)
labels = DBSCAN(eps=eps, n_jobs=-1,
                min_samples=min_samples).fit_predict(X_scale)
result = pd.Series(index=X.index)
result.loc[X.index] = labels
result.fillna(-2, inplace=True)
result = result.apply(int_to_string)
return list(result)",
avg([Var1]), avg([Var2])
)

它比教程更复杂,因为我的数据集有 NaN 值,我正在尝试使用 pandas 代码处理这些值。

真正的问题是 X DataFrame 的大小似乎只有 1 行。我知道实际数据并非如此;在 Tableau 中,散点图上显示了 1000 个数据点。我知道它只有 1 行数据,因为我从 Tableau 收到以下错误(我认为当一行数据恰好有空值时会发生此错误)...

enter image description here

...因为我在脚本中添加了一段 pickle 语句,将 X DataFrame 导出到文件,当我在 Python 中打开该 pickle 对象时,它显示 DataFrame 有一个形状(1, 2); 1 行 2 列 Var1Var2 不是聚合字段,因此取平均值不应将它们减少为单个值。

以前有人遇到过这种情况吗?可能导致此问题的 Tableau 脚本代码有什么问题?或者我做错了什么?

最佳答案

要一次发送所有数据,您应该更改脚本计算的寻址设置。假设您将计算放在行上,然后右键单击它,选择编辑表计算,然后选择特定维度并检查其中的每个维度

关于python - Tableau Python脚本仅处理一行数据......它应该是1000's,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46310927/

相关文章:

r - 使用 R 进行 Tableau 关联

python - 可取消后端调用的架构推荐 [zerorpc if possible?]

python - TabPy Python 脚本 "Unterminated Date"

data-visualization - 画面 : is there a clean way to print out an embedded visualization?

python - TensorFlow:Python 中的所有基本操作都在 Tensorflow 中被覆盖吗

syntax-error - Tableau case when 语句 - 语法无效(缺少标识符)

postgresql - 具有数据库中多个表的 Tableau Extract API

python - 如何将链接语法分析器用作语法检查器

python - Python 中的巫毒代码

python - 加强数据提取