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