使用存储的colnames作为变量名提取PyTables表的最有效方法

时间:2010-09-21 16:53:37

标签: python exec pytables

以下代码提供了我所需的功能;但是,对于包含200个变量和64000行的表,需要花费10秒多一点的时间。有没有更有效的方法来创建与列名称匹配的变量名称空间?

strExec = "a = table[:]"  
for colobj in table.description._f_walk(type="Col"):  
    colName = colobj._v_pathname  
    strExec = strExec + '\n' + colName + " = a['" + colName + "']"  
exec(strExec)  

代码将在分析环境中执行,并代表最终用户的大部分等待时间;所以,我想确认这是根据PyTable列名称动态建立命名空间的最佳方法。

1 个答案:

答案 0 :(得分:1)

正如unutbu所建议的那样,表副本a = table [:]是时间消费者。建议的代码确实提供了对没有前缀的tablename变量的访问。人们承认,使用这种简化变量名称空间的方法是值得怀疑的,因为它可能不适用于不言自明的代码。