有没有可能用铁Python的字符串对动态数组进行排序?

2024-04-24 09:26:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在spotfire中编写一个iron python代码,通过传递现有的数据表过滤器,根据需要从数据表中提取数据。问题是用户希望按指定的特定排序顺序对值进行排序。 问题是:如果我们有完整的数据表,我们可以通过列属性->排序顺序->自定义排序顺序对行中的值进行排序并进行排列。但是现在我们没有完整的值,所以我们如何在iron python脚本或spotfire中处理它呢。在

提前谢谢


Tags: 数据代码用户脚本过滤器属性排序顺序
1条回答
网友
1楼 · 发布于 2024-04-24 09:26:47

我做了一个类似的工作来排序数字值作为字符串。在

我的建议是创建一个计算列,在实际字符串之前添加空格,这取决于您希望如何排序它。在SpotFireVisualizations中,它会修剪字符串,这样用户就不会看到它没有对齐,所有的东西都会相应地进行排序。在

如果这是一个简单的任务,可以直接在计算列的表达式中完成。在

我的例子:

If([AR Days]<>"(PA)",
If(Integer([AR Days])>360,">360",
If(Integer([AR Days])>359," " & [AR Days],
If(Integer([AR Days])>349,"  " & [AR Days],
If(Integer([AR Days])>339,"   " & [AR Days],
If(Integer([AR Days])>329,"    " & [AR Days],
If(Integer([AR Days])>319,"     " & [AR Days],
If(Integer([AR Days])>309,"      " & [AR Days],
If(Integer([AR Days])>299,"       " & [AR Days],
If(Integer([AR Days])>289,"        " & [AR Days],
If(Integer([AR Days])>279,"         " & [AR Days],
If(Integer([AR Days])>269,"          " & [AR Days],
If(Integer([AR Days])>259,"           " & [AR Days],
If(Integer([AR Days])>249,"            " & [AR Days],
If(Integer([AR Days])>239,"             " & [AR Days],
If(Integer([AR Days])>229,"              " & [AR Days],
If(Integer([AR Days])>219,"               " & [AR Days],
If(Integer([AR Days])>209,"                " & [AR Days],
If(Integer([AR Days])>199,"                 " & [AR Days],
If(Integer([AR Days])>189,"                  " & [AR Days],
If(Integer([AR Days])>179,"                   " & [AR Days],
If(Integer([AR Days])>169,"                    " & [AR Days],
If(Integer([AR Days])>159,"                     " & [AR Days],
If(Integer([AR Days])>149,"                      " & [AR Days],
If(Integer([AR Days])>139,"                       " & [AR Days],
If(Integer([AR Days])>129,"                        " & [AR Days],
If(Integer([AR Days])>119,"                         " & [AR Days],
If(Integer([AR Days])>109,"                          " & [AR Days],
If(Integer([AR Days])>99,"                           " & [AR Days],
If(Integer([AR Days])>89,"                            " & [AR Days],
If(Integer([AR Days])>79,"                             " & [AR Days],
If(Integer([AR Days])>69,"                              " & [AR Days],
If(Integer([AR Days])>59,"                               " & [AR Days],
If(Integer([AR Days])>49,"                                " & [AR Days],
If(Integer([AR Days])>39,"                                 " & [AR Days],
If(Integer([AR Days])>29,"                                  " & [AR Days],
If(Integer([AR Days])>19,"                                   " & [AR Days],
If(Integer([AR Days])>9,"                                    " & [AR Days],
                          "                                     " & [AR Days]))))))))))))))))))))))))))))))))))))),
                          "                                      (PA)")

对于我更复杂的示例,我允许用户为类似的bucket选择自定义大小的分组,最终bucket的硬上限为360+。此值是文本输入框(名为udBucketSize的属性)中的整数,更改时的脚本如下:

^{pr2}$

属性udBucketString是计算列的表达式,现在按我希望的方式进行排序。在

类似的方法可以用于字母或特殊字符的排序。在

相关问题 更多 >