【问题标题】:How am I able to get values from a column in spotfire tables using Iron Python scripting?如何使用 Iron Python 脚本从 spotfire 表中的列中获取值?
【发布时间】:2016-09-05 05:18:51
【问题描述】:

我在 spotfire 中的数据表很少。但是我需要使用 Iron python 脚本来引用特定表中的列(这不是当前的活动参考表)。我还想在一列中打印唯一值。

EX:我有一个具有 50 个值的属性控件,并且在过滤器面板中作为复选框,当用户从属性控件中选择一个值时,复选框过滤器以检查该值,并且当用户选择无时必须取消选中剩余的值取消选中该复选框过滤器中的所有值。

【问题讨论】:

  • 请帮我解决这个问题

标签: ironpython spotfire


【解决方案1】:

您可以使用以下脚本从列中获取值。如果您有大量数据,则仅使用该控件。如果您愿意,可以将其删除。

from Spotfire.Dxp.Data import *

tableName='your_table_name'
columnToFetch='your_column_name'
activeTable=Document.Data.Tables[tableName]
rowCount = activeTable.RowCount
rowsToInclude = IndexSet(rowCount,True)
cursor1 = DataValueCursor.CreateFormatted(activeTable.Columns[columnToFetch])
ctr1 = 0
for row in activeTable.GetRows(rowsToInclude,cursor1):
    rowIndex = row.Index
    val1 = cursor1.CurrentValue
    print val1
    ctr1 = ctr1 + 1
    if (ctr1 == 5):
        break

Credit TechGoje

【讨论】:

  • 感谢 scsimon 使用此脚本我可以打印列中的所有值 [甚至重复],但是有什么方法可以打印特定列中的唯一值
  • @Rama 您必须将其存储在一个唯一的数组中。希望这对您有所帮助。 99%没有?对 API 进行一点研究即可完成它
  • @rama 你也没有投票或接受你之前问题的单一答案。我会鼓励您重新审视这些并支持有用的答案并接受那些正确的答案。如果您的趋势继续不奖励支持者,许多 stackoverflow 贡献者可能会忽略您的问题。值得深思的伙伴。
【解决方案2】:

this post 中的脚本可用于从数据表列中获取唯一值。它的工作原理如下 -

  1. 为列创建光标 rowCount = activeTable.RowCount rowsToInclude = IndexSet(rowCount,True) cursor = DataValueCursor.CreateFormatted(activeTable.Columns[columnToFetch])
  2. 使用字典存储值,然后打印键。

    uc=dict()

  3. 通过游标遍历将值添加到字典中 for row in activeTable.GetRows(rowsToInclude,cursor): rowIndex = row.Index val = cursor.CurrentValue uc.update({val:ctrl})

  4. 从字典中检索值

    对于 uc 中的键:打印键

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多