为什么不是';在Spotfire中使用Python数据函数时,我的新列命名是否正确

为什么不是';在Spotfire中使用Python数据函数时,我的新列命名是否正确,python,spotfire,Python,Spotfire,我已经使用TERR在Spotfire中生成了计算列和其他类型的数据函数,很高兴听到您现在可以使用Python了。我做了一个简单的测试,以确保一切正常(x3=x2*2)——这是我在python数据函数窗口中编写的脚本,然后将输入参数(x2作为一列)和输出参数(x3)设置为一个新列……值很好,但新计算的列名为x2(2)…我查看了输入/输出参数,所有的名称都是正确的,但该列仍然以这种方式命名。我关心的是,这很简单,但为什么即使所有设置都正确,该列的名称也没有与脚本中的名称相同。甚至还有Spotfire

我已经使用TERR在Spotfire中生成了计算列和其他类型的数据函数,很高兴听到您现在可以使用Python了。我做了一个简单的测试,以确保一切正常(x3=x2*2)——这是我在python数据函数窗口中编写的脚本,然后将输入参数(x2作为一列)和输出参数(x3)设置为一个新列……值很好,但新计算的列名为x2(2)…我查看了输入/输出参数,所有的名称都是正确的,但该列仍然以这种方式命名。我关心的是,这很简单,但为什么即使所有设置都正确,该列的名称也没有与脚本中的名称相同。甚至还有Spotfire员工在Youtube上的视频,同样的事情也发生在他们身上,他们根本不提


还有其他人遇到过吗?

它似乎与等效的TERR数据功能的工作方式不同。我咨询了Spotfire工程团队,下面是他们的建议。这与Python vs TERR中如何在内部处理列输入有关。在Python和TERR中,输入(和输出)都作为表传递。TERR的例子是data.frame,Python的例子是pandas.DataFrame。然而,在TERR的例子中,如果数据函数说输入是一列,这实际上是从一列Data.frame转换为等效类型的向量;类似地,对于值,它将从1x1 data.frame转换为标量类型。在Python中,值输入被视为相同的,但列输入被保留为pandas.Series,它保留了原始输入列的列名。
也许你可以试试别的。您不希望将其转换为标准Python列表,因为在这种情况下,x2*2实际上会使列的长度增加一倍,而不是向量化算术运算。但是你可以把它变成一个直的numpy数组。您可以尝试在示例顶部添加“x2=x2.to_numpy()”,看看结果是否符合您的预期。

谢谢您提供的信息,完全有意义!!