提取具有存储列名为变量名的PyTables表的最有效方法

3 投票
1 回答
739 浏览
提问于 2025-04-16 04:25

以下代码实现了我需要的功能,但对于一个包含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 个回答

1

正如unutbu所提到的,复制表格的操作 a=table[:] 是比较耗时间的。虽然建议的代码可以让你在使用表格名称时不需要加前缀,但大家也知道,这种简化变量命名的方法有点问题,因为这样可能会让代码不太容易理解。

撰写回答